1
0

Compare commits

...

392 Commits

80 changed files with 1614 additions and 1088 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
}
}
}
}

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Issue Tracker
url: https://github.com/esphome/issues
about: Please create bug reports in the dedicated issue tracker.
- name: Feature Request Tracker
url: https://github.com/esphome/feature-requests
about: Please create feature requests in the dedicated feature request tracker.
- name: Frequently Asked Question
url: https://esphome.io/guides/faq.html
about: Please view the FAQ for common questions and what to include in a bug report.

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

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

View File

@@ -6,70 +6,54 @@ on:
version:
description: The version to release
required: true
content:
description: The content of the release-notes
required: true
jobs:
create-release:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4.1.1
- uses: actions/setup-python@v4.7.1
with:
python-version: '3.x'
python-version: '3.11'
- 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 }}
${{ 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
id: commit_version
run: |
git config user.name esphomebot
git config user.email contact@esphome.io
git config user.email esphome@nabucasa.com
git add .
git commit -m "Bump version to v${{ github.event.inputs.version }}"
git commit -m "Bump version to ${{ github.event.inputs.version }}"
git push
COMMIT=$(git rev-parse HEAD)
echo "::set-output name=commit_sha::${COMMIT}"
- if: ${{ contains(github.event.inputs.version, 'b') }}
name: Create Beta Release
uses: actions/create-release@v1
- name: Create a Release
uses: actions/create-release@v1.1.4
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
body: 'See https://beta.esphome.io/changelog/index.html'
prerelease: true
commitish: ${{ steps.commit_version.outputs.commit_sha }}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Create Stable Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
body: 'See https://esphome.io/changelog/index.html'
prerelease: false
commitish: ${{ steps.commit_version.outputs.commit_sha }}
deploy-community-addons:
runs-on: ubuntu-latest
needs: [create-release]
steps:
- if: ${{ contains(github.event.inputs.version, 'b') }}
name: Publish beta release to community-addons repository
run: |
docker run --rm hassioaddons/repository-updater:latest \
--repository hassio-addons/repository-beta \
--addon esphome \
--token "${TOKEN}"
env:
TOKEN: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Publish stable release to community-addons repository
run: |
docker run --rm hassioaddons/repository-updater:latest \
--repository hassio-addons/repository \
--addon esphome \
--token "${TOKEN}"
env:
TOKEN: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
body: ${{ github.event.inputs.content }}
prerelease: ${{ contains(github.event.inputs.version, 'b') }}
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.1.1
- name: Log in to the GitHub container registry
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@v3.0.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.0.0
- name: Build and Push
uses: docker/build-push-action@v5.0.0
with:
context: .
file: .devcontainer/Dockerfile
tags: ghcr.io/${{ github.repository_owner }}/devcontainer:addons
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64

34
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Lint
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Add-on configuration
runs-on: ubuntu-latest
strategy:
matrix:
channels:
- folder: esphome
channel: stable
- folder: esphome-beta
channel: beta
- folder: esphome-dev
channel: dev
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v4.1.1
- name: 🛠 Setup Python
uses: actions/setup-python@v4.7.1
with:
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.13.2
with:
path: "./${{ matrix.channels.folder }}"

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__pycache__/
*.py[cod]
*$py.class
venv/

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": []
}
]
}

169
esphome-beta/CHANGELOG.md Normal file
View File

@@ -0,0 +1,169 @@
## 2023.11.0
## Full list of changes
### New Components
- Add Support for Sensirion SFA30 sensor [esphome#5519](https://github.com/esphome/esphome/pull/5519) by [@ghsensdev](https://github.com/ghsensdev) (new-integration)
- add uart button [esphome#5540](https://github.com/esphome/esphome/pull/5540) by [@ssieb](https://github.com/ssieb) (new-integration)
- Add ZH/LT-01 climate component with IR receiver option [esphome#4333](https://github.com/esphome/esphome/pull/4333) by [@cfeenstra1024](https://github.com/cfeenstra1024) (new-integration)
- Feat: Add GREE climateir component [esphome#4464](https://github.com/esphome/esphome/pull/4464) by [@PiuPiuson](https://github.com/PiuPiuson) (new-integration)
- AMS iAQ Core CO2 sensor component [esphome#5192](https://github.com/esphome/esphome/pull/5192) by [@yozik04](https://github.com/yozik04) (new-integration)
- Add IR Noblex climate component [esphome#4913](https://github.com/esphome/esphome/pull/4913) by [@AGalfra](https://github.com/AGalfra) (new-integration)
- Add text component [esphome#5336](https://github.com/esphome/esphome/pull/5336) by [@EternityForest](https://github.com/EternityForest) (new-integration)
- Add support for honeywellabp2 pressure sensor [esphome#5422](https://github.com/esphome/esphome/pull/5422) by [@jpfaff](https://github.com/jpfaff) (new-integration)
- Add Emc2101 [esphome#4491](https://github.com/esphome/esphome/pull/4491) by [@ellull](https://github.com/ellull) (new-integration)
- Add support for Qwiic PIR binary sensor [esphome#5194](https://github.com/esphome/esphome/pull/5194) by [@kahrendt](https://github.com/kahrendt) (new-integration)
- Add dfrobot_sen0395 mmwave radar component [esphome#4203](https://github.com/esphome/esphome/pull/4203) by [@niklasweber](https://github.com/niklasweber) (new-integration)
- Add HLK-LD2420 mmWave Radar module component. [esphome#4847](https://github.com/esphome/esphome/pull/4847) by [@descipher](https://github.com/descipher) (new-integration)
- Add Micronova component [esphome#4760](https://github.com/esphome/esphome/pull/4760) by [@Jorre05](https://github.com/Jorre05) (new-integration)
- Add differential pressure sensor support for CFSensor XGZP68xxD devices [esphome#5562](https://github.com/esphome/esphome/pull/5562) by [@gcormier](https://github.com/gcormier) (new-integration)
- Add spi support for ade7953 [esphome#5439](https://github.com/esphome/esphome/pull/5439) by [@angelnu](https://github.com/angelnu) (new-integration)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
### Breaking Changes
- Hydreon updates [esphome#5424](https://github.com/esphome/esphome/pull/5424) by [@jj-uk](https://github.com/jj-uk) (breaking-change)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
### Beta Changes
- Handle nanoseconds in config [esphome#5695](https://github.com/esphome/esphome/pull/5695) by [@jesserockz](https://github.com/jesserockz)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
- Fix static assets cache logic [esphome#5700](https://github.com/esphome/esphome/pull/5700) by [@bdraco](https://github.com/bdraco)
- Use piwheels for armv7 docker image builds [esphome#5703](https://github.com/esphome/esphome/pull/5703) by [@bdraco](https://github.com/bdraco)
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable [esphome#5704](https://github.com/esphome/esphome/pull/5704) by [@Rapsssito](https://github.com/Rapsssito)
- Bump aioesphomeapi to 18.2.7 [esphome#5706](https://github.com/esphome/esphome/pull/5706) by [@bdraco](https://github.com/bdraco)
- Update Dockerfile to use piwheels for armv7 [esphome#5709](https://github.com/esphome/esphome/pull/5709) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf from 0.120.0 to 0.122.3 [esphome#5715](https://github.com/esphome/esphome/pull/5715) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
- Fix zeroconf name resolution refactoring error [esphome#5725](https://github.com/esphome/esphome/pull/5725) by [@bdraco](https://github.com/bdraco)
- Missed ifdefs [esphome#5727](https://github.com/esphome/esphome/pull/5727) by [@descipher](https://github.com/descipher)
- Bump aioesphomeapi from 18.2.7 to 18.4.0 [esphome#5735](https://github.com/esphome/esphome/pull/5735) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Migrate to using aioesphomeapi for the log runner to fix multiple issues [esphome#5733](https://github.com/esphome/esphome/pull/5733) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf to 0.123.0 [esphome#5736](https://github.com/esphome/esphome/pull/5736) by [@bdraco](https://github.com/bdraco)
- Handle wake word not set up internally [esphome#5738](https://github.com/esphome/esphome/pull/5738) by [@jesserockz](https://github.com/jesserockz)
- dashboard: remove usage of codecs module [esphome#5741](https://github.com/esphome/esphome/pull/5741) by [@bdraco](https://github.com/bdraco)
- dashboard: Run get_serial_ports in the executor [esphome#5740](https://github.com/esphome/esphome/pull/5740) by [@bdraco](https://github.com/bdraco)
- Generate partitions.csv based on flash size [esphome#5697](https://github.com/esphome/esphome/pull/5697) by [@kbx81](https://github.com/kbx81)
- Allow setup to continue past mqtt if network/wifi is disabled [esphome#5754](https://github.com/esphome/esphome/pull/5754) by [@jesserockz](https://github.com/jesserockz)
- Dont dump wifi info when disabled [esphome#5755](https://github.com/esphome/esphome/pull/5755) by [@jesserockz](https://github.com/jesserockz)
### All changes
- Splits FastLed test scripts out of test1.yaml [esphome#5522](https://github.com/esphome/esphome/pull/5522) by [@nielsnl68](https://github.com/nielsnl68)
- Add round sensor filter [esphome#5532](https://github.com/esphome/esphome/pull/5532) by [@jesserockz](https://github.com/jesserockz)
- Add Support for Sensirion SFA30 sensor [esphome#5519](https://github.com/esphome/esphome/pull/5519) by [@ghsensdev](https://github.com/ghsensdev) (new-integration)
- Change UART source clock to `UART_SCLK_DEFAULT` when IDF >=v5 [esphome#5533](https://github.com/esphome/esphome/pull/5533) by [@leoshusar](https://github.com/leoshusar)
- add uart button [esphome#5540](https://github.com/esphome/esphome/pull/5540) by [@ssieb](https://github.com/ssieb) (new-integration)
- add on/off options for uart switch [esphome#5539](https://github.com/esphome/esphome/pull/5539) by [@ssieb](https://github.com/ssieb)
- Update docker base and packages + docker python 3.11 [esphome#5473](https://github.com/esphome/esphome/pull/5473) by [@bdraco](https://github.com/bdraco)
- IDF 5 fixes for various components from test1.yaml [esphome#5451](https://github.com/esphome/esphome/pull/5451) by [@kbx81](https://github.com/kbx81)
- Bump aioesphomeapi from 15.0.0 to 18.0.6 [esphome#5557](https://github.com/esphome/esphome/pull/5557) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump zeroconf from 0.115.1 to 0.119.0 [esphome#5560](https://github.com/esphome/esphome/pull/5560) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add config to allow suppression of warnings about use of strapping pins [esphome#5287](https://github.com/esphome/esphome/pull/5287) by [@clydebarrow](https://github.com/clydebarrow)
- Hydreon updates [esphome#5424](https://github.com/esphome/esphome/pull/5424) by [@jj-uk](https://github.com/jj-uk) (breaking-change)
- Bump actions/checkout from 4.1.0 to 4.1.1 [esphome#5551](https://github.com/esphome/esphome/pull/5551) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pyupgrade from 3.10.1 to 3.13.0 [esphome#5428](https://github.com/esphome/esphome/pull/5428) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump tzlocal from 5.0.1 to 5.1 [esphome#5480](https://github.com/esphome/esphome/pull/5480) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump black from 23.9.1 to 23.10.0 [esphome#5561](https://github.com/esphome/esphome/pull/5561) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fan no off cycle action [esphome#5564](https://github.com/esphome/esphome/pull/5564) by [@skykingjwc](https://github.com/skykingjwc)
- Bump aioesphomeapi from 18.0.6 to 18.0.7 [esphome#5573](https://github.com/esphome/esphome/pull/5573) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Remove unnecessary checks in Nextion component [esphome#5578](https://github.com/esphome/esphome/pull/5578) by [@edwardtfn](https://github.com/edwardtfn)
- update storage version from mdns [esphome#5584](https://github.com/esphome/esphome/pull/5584) by [@glmnet](https://github.com/glmnet)
- set Nextion protocol reparse mode [esphome#5484](https://github.com/esphome/esphome/pull/5484) by [@edwardtfn](https://github.com/edwardtfn)
- Add address text sensor to WireGuard [esphome#5576](https://github.com/esphome/esphome/pull/5576) by [@droscy](https://github.com/droscy)
- Add LibreTiny hardwares to PR Template [esphome#5575](https://github.com/esphome/esphome/pull/5575) by [@HeMan](https://github.com/HeMan)
- Bump pytest-mock from 3.11.1 to 3.12.0 [esphome#5571](https://github.com/esphome/esphome/pull/5571) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pyupgrade from 3.13.0 to 3.15.0 [esphome#5570](https://github.com/esphome/esphome/pull/5570) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add ZH/LT-01 climate component with IR receiver option [esphome#4333](https://github.com/esphome/esphome/pull/4333) by [@cfeenstra1024](https://github.com/cfeenstra1024) (new-integration)
- Feat: Add GREE climateir component [esphome#4464](https://github.com/esphome/esphome/pull/4464) by [@PiuPiuson](https://github.com/PiuPiuson) (new-integration)
- AMS iAQ Core CO2 sensor component [esphome#5192](https://github.com/esphome/esphome/pull/5192) by [@yozik04](https://github.com/yozik04) (new-integration)
- Add IR Noblex climate component [esphome#4913](https://github.com/esphome/esphome/pull/4913) by [@AGalfra](https://github.com/AGalfra) (new-integration)
- Bump aioesphomeapi from 18.0.7 to 18.0.12 [esphome#5597](https://github.com/esphome/esphome/pull/5597) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add text component [esphome#5336](https://github.com/esphome/esphome/pull/5336) by [@EternityForest](https://github.com/EternityForest) (new-integration)
- Fix exception handling when loading packages [esphome#5569](https://github.com/esphome/esphome/pull/5569) by [@dentra](https://github.com/dentra)
- Add support for honeywellabp2 pressure sensor [esphome#5422](https://github.com/esphome/esphome/pull/5422) by [@jpfaff](https://github.com/jpfaff) (new-integration)
- Add Emc2101 [esphome#4491](https://github.com/esphome/esphome/pull/4491) by [@ellull](https://github.com/ellull) (new-integration)
- Fix: Incorporate unique serial number in preference's hash for multiple Sensirion sensors [esphome#5479](https://github.com/esphome/esphome/pull/5479) by [@kahrendt](https://github.com/kahrendt)
- Add support for Qwiic PIR binary sensor [esphome#5194](https://github.com/esphome/esphome/pull/5194) by [@kahrendt](https://github.com/kahrendt) (new-integration)
- Add ignore out of range option for clamp filter [esphome#5455](https://github.com/esphome/esphome/pull/5455) by [@kahrendt](https://github.com/kahrendt)
- Print text mqtt command topic [esphome#5601](https://github.com/esphome/esphome/pull/5601) by [@jesserockz](https://github.com/jesserockz)
- Correctly allow mqtt topics to be none so ESPHome does not sub/pub to them [esphome#5213](https://github.com/esphome/esphome/pull/5213) by [@jesserockz](https://github.com/jesserockz)
- SX1509 output debounce fix (resolves esphome/issues#4402) [esphome#4672](https://github.com/esphome/esphome/pull/4672) by [@tracestep](https://github.com/tracestep)
- Add details when error loading package [esphome#5603](https://github.com/esphome/esphome/pull/5603) by [@dentra](https://github.com/dentra)
- Fallback to main secrets.yaml for packages [esphome#5604](https://github.com/esphome/esphome/pull/5604) by [@dentra](https://github.com/dentra)
- Add area (zone) to esphome core config to be suggested through API and MQTT. [esphome#5602](https://github.com/esphome/esphome/pull/5602) by [@Cossid](https://github.com/Cossid)
- Devcontainer: allow pip install and dont warn about root user [esphome#5608](https://github.com/esphome/esphome/pull/5608) by [@jesserockz](https://github.com/jesserockz)
- Validate test files before compiling [esphome#5611](https://github.com/esphome/esphome/pull/5611) by [@jesserockz](https://github.com/jesserockz)
- Minor defines.h updates [esphome#5610](https://github.com/esphome/esphome/pull/5610) by [@jesserockz](https://github.com/jesserockz)
- timeout filter: return value [esphome#5612](https://github.com/esphome/esphome/pull/5612) by [@jesserockz](https://github.com/jesserockz)
- Add dfrobot_sen0395 mmwave radar component [esphome#4203](https://github.com/esphome/esphome/pull/4203) by [@niklasweber](https://github.com/niklasweber) (new-integration)
- refactor mcp4728 component [esphome#5609](https://github.com/esphome/esphome/pull/5609) by [@ssieb](https://github.com/ssieb)
- Fix HA error related to incorrect state class [esphome#5605](https://github.com/esphome/esphome/pull/5605) by [@nagyrobi](https://github.com/nagyrobi)
- Fix xpt2046 for IDF 5 [esphome#5614](https://github.com/esphome/esphome/pull/5614) by [@kbx81](https://github.com/kbx81)
- IDF 5 fixes for various components from test4.yaml [esphome#5622](https://github.com/esphome/esphome/pull/5622) by [@kbx81](https://github.com/kbx81)
- IDF 5 fixes for various components from test2.yaml [esphome#5621](https://github.com/esphome/esphome/pull/5621) by [@kbx81](https://github.com/kbx81)
- Fix armv7 docker builds [esphome#5630](https://github.com/esphome/esphome/pull/5630) by [@bdraco](https://github.com/bdraco)
- Bump aioesphomeapi from 18.0.12 to 18.2.0 [esphome#5606](https://github.com/esphome/esphome/pull/5606) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add needs-docs workflow to fail CI [esphome#5643](https://github.com/esphome/esphome/pull/5643) by [@jesserockz](https://github.com/jesserockz)
- Add support for PCA9535 16 bit I/O expander [esphome#5634](https://github.com/esphome/esphome/pull/5634) by [@clydebarrow](https://github.com/clydebarrow)
- Fix nextion waveform sending for multiple waveforms [esphome#4408](https://github.com/esphome/esphome/pull/4408) by [@gpambrozio](https://github.com/gpambrozio)
- Allow validation of pins based on hub config [esphome#5647](https://github.com/esphome/esphome/pull/5647) by [@jesserockz](https://github.com/jesserockz)
- Bump aioesphomeapi from 18.2.0 to 18.2.1 [esphome#5653](https://github.com/esphome/esphome/pull/5653) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Validate sn74hc595 pin number are within range [esphome#5655](https://github.com/esphome/esphome/pull/5655) by [@jesserockz](https://github.com/jesserockz)
- Update PCA9554 pin checks to new facility [esphome#5656](https://github.com/esphome/esphome/pull/5656) by [@clydebarrow](https://github.com/clydebarrow)
- Update mDNS component to 1.2.2 [esphome#5654](https://github.com/esphome/esphome/pull/5654) by [@HeMan](https://github.com/HeMan)
- Fix return value of run_external_command [esphome#5657](https://github.com/esphome/esphome/pull/5657) by [@jesserockz](https://github.com/jesserockz)
- Update RTTTL component to allow I2S [esphome#5177](https://github.com/esphome/esphome/pull/5177) by [@nielsnl68](https://github.com/nielsnl68)
- Bump flake8 version in pre-commit to match requirements file [esphome#5658](https://github.com/esphome/esphome/pull/5658) by [@jesserockz](https://github.com/jesserockz)
- Bump pytest from 7.4.2 to 7.4.3 [esphome#5599](https://github.com/esphome/esphome/pull/5599) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump tzlocal from 5.1 to 5.2 [esphome#5594](https://github.com/esphome/esphome/pull/5594) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump black from 23.10.0 to 23.10.1 [esphome#5593](https://github.com/esphome/esphome/pull/5593) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add Healthcheck to Dockerfile [esphome#5651](https://github.com/esphome/esphome/pull/5651) by [@JcMinarro](https://github.com/JcMinarro)
- Add HLK-LD2420 mmWave Radar module component. [esphome#4847](https://github.com/esphome/esphome/pull/4847) by [@descipher](https://github.com/descipher) (new-integration)
- Add Micronova component [esphome#4760](https://github.com/esphome/esphome/pull/4760) by [@Jorre05](https://github.com/Jorre05) (new-integration)
- Add basic shell autocompletion using argcomplete [esphome#5618](https://github.com/esphome/esphome/pull/5618) by [@Nardol](https://github.com/Nardol)
- Fixed int variables for user defined service in case of ESP32-C3 [esphome#5675](https://github.com/esphome/esphome/pull/5675) by [@paveldn](https://github.com/paveldn)
- Add callback for raw sml messages [esphome#5668](https://github.com/esphome/esphome/pull/5668) by [@micw](https://github.com/micw)
- Fix compile with latest esp-idf on esp32c6 [esphome#5677](https://github.com/esphome/esphome/pull/5677) by [@DAVe3283](https://github.com/DAVe3283)
- Null topic_prefix disables MQTT publishing/subscription unless topic is explicitly configured [esphome#5644](https://github.com/esphome/esphome/pull/5644) by [@kahrendt](https://github.com/kahrendt)
- feat: Add ESP32 BLE enable/disable automations [esphome#5616](https://github.com/esphome/esphome/pull/5616) by [@Rapsssito](https://github.com/Rapsssito)
- ble_client rssi sensor fix when not connected [esphome#5632](https://github.com/esphome/esphome/pull/5632) by [@jesserockz](https://github.com/jesserockz)
- Add Byron Doorbell RF protocol [esphome#4718](https://github.com/esphome/esphome/pull/4718) by [@marshn](https://github.com/marshn)
- Refactor dashboard zeroconf support [esphome#5681](https://github.com/esphome/esphome/pull/5681) by [@bdraco](https://github.com/bdraco)
- Allow static assets to be cached if not in debug mode [esphome#5684](https://github.com/esphome/esphome/pull/5684) by [@jesserockz](https://github.com/jesserockz)
- Remove extra code in old sgp40 [esphome#5685](https://github.com/esphome/esphome/pull/5685) by [@jesserockz](https://github.com/jesserockz)
- Allow pulse light effect to have separate on and off transition lengths [esphome#5659](https://github.com/esphome/esphome/pull/5659) by [@jesserockz](https://github.com/jesserockz)
- Add differential pressure sensor support for CFSensor XGZP68xxD devices [esphome#5562](https://github.com/esphome/esphome/pull/5562) by [@gcormier](https://github.com/gcormier) (new-integration)
- Bump zeroconf from 0.119.0 to 0.120.0 [esphome#5682](https://github.com/esphome/esphome/pull/5682) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add spi support for ade7953 [esphome#5439](https://github.com/esphome/esphome/pull/5439) by [@angelnu](https://github.com/angelnu) (new-integration)
- Remove page jump on Nextion startup [esphome#5673](https://github.com/esphome/esphome/pull/5673) by [@edwardtfn](https://github.com/edwardtfn)
- [web_server] Adds the ability to handle Private Network Access preflight requests [esphome#5669](https://github.com/esphome/esphome/pull/5669) by [@DanielBaulig](https://github.com/DanielBaulig)
- Update esphome-dashboard to version 20231107.0 [esphome#5686](https://github.com/esphome/esphome/pull/5686) by [@jesserockz](https://github.com/jesserockz)
- add wifi.on_connect and wifi.on_disconnect triggers [esphome#3639](https://github.com/esphome/esphome/pull/3639) by [@ChemicalXandco](https://github.com/ChemicalXandco)
- Implement a memory cache for dashboard entries to avoid frequent disk reads [esphome#5687](https://github.com/esphome/esphome/pull/5687) by [@bdraco](https://github.com/bdraco)
- support spi for sn74hc595 [esphome#5491](https://github.com/esphome/esphome/pull/5491) by [@angelnu](https://github.com/angelnu)
- Handle on_disconnect when Wi-Fi is disabled [esphome#5691](https://github.com/esphome/esphome/pull/5691) by [@kbx81](https://github.com/kbx81)
- Bump aioesphomeapi from 18.2.1 to 18.2.4 [esphome#5692](https://github.com/esphome/esphome/pull/5692) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Handle nanoseconds in config [esphome#5695](https://github.com/esphome/esphome/pull/5695) by [@jesserockz](https://github.com/jesserockz)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
- Fix static assets cache logic [esphome#5700](https://github.com/esphome/esphome/pull/5700) by [@bdraco](https://github.com/bdraco)
- Use piwheels for armv7 docker image builds [esphome#5703](https://github.com/esphome/esphome/pull/5703) by [@bdraco](https://github.com/bdraco)
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable [esphome#5704](https://github.com/esphome/esphome/pull/5704) by [@Rapsssito](https://github.com/Rapsssito)
- Bump aioesphomeapi to 18.2.7 [esphome#5706](https://github.com/esphome/esphome/pull/5706) by [@bdraco](https://github.com/bdraco)
- Update Dockerfile to use piwheels for armv7 [esphome#5709](https://github.com/esphome/esphome/pull/5709) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf from 0.120.0 to 0.122.3 [esphome#5715](https://github.com/esphome/esphome/pull/5715) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
- Fix zeroconf name resolution refactoring error [esphome#5725](https://github.com/esphome/esphome/pull/5725) by [@bdraco](https://github.com/bdraco)
- Missed ifdefs [esphome#5727](https://github.com/esphome/esphome/pull/5727) by [@descipher](https://github.com/descipher)
- Bump aioesphomeapi from 18.2.7 to 18.4.0 [esphome#5735](https://github.com/esphome/esphome/pull/5735) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Migrate to using aioesphomeapi for the log runner to fix multiple issues [esphome#5733](https://github.com/esphome/esphome/pull/5733) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf to 0.123.0 [esphome#5736](https://github.com/esphome/esphome/pull/5736) by [@bdraco](https://github.com/bdraco)
- Handle wake word not set up internally [esphome#5738](https://github.com/esphome/esphome/pull/5738) by [@jesserockz](https://github.com/jesserockz)
- dashboard: remove usage of codecs module [esphome#5741](https://github.com/esphome/esphome/pull/5741) by [@bdraco](https://github.com/bdraco)
- dashboard: Run get_serial_ports in the executor [esphome#5740](https://github.com/esphome/esphome/pull/5740) by [@bdraco](https://github.com/bdraco)
- Generate partitions.csv based on flash size [esphome#5697](https://github.com/esphome/esphome/pull/5697) by [@kbx81](https://github.com/kbx81)
- Allow setup to continue past mqtt if network/wifi is disabled [esphome#5754](https://github.com/esphome/esphome/pull/5754) by [@jesserockz](https://github.com/jesserockz)
- Dont dump wifi info when disabled [esphome#5755](https://github.com/esphome/esphome/pull/5755) by [@jesserockz](https://github.com/jesserockz)

71
esphome-beta/DOCS.md Normal file
View File

@@ -0,0 +1,71 @@
# 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. Search for the “ESPHome” add-on in the Supervisor add-on store.
2. Press install to download the add-on and unpack it on your machine. This can take some time.
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
4. Start the add-on, check the logs of the add-on to see if everything went well.
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
Example add-on configuration:
```json
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
### Option: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.

View File

@@ -0,0 +1 @@
Any edits should be made to the files in the 'template' directory

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Beta Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/master/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,101 +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/master/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/master/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>
## Installation
To install this Home Assistant add-on you need to add the ESPHome add-on repository
first:
1. Add the ESPHome add-ons repository to your Home Assistant instance. You can do this by navigating to the "Add-on store" tab in the Supervisor panel and then entering https://github.com/esphome/hassio in the "Add repository" field after selecting "Repositories" from the top-right menu.
2. Now scroll down and select the "ESPHome" add-on.
3. Press install to download the add-on and unpack it on your machine. This can take some time.
4. 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.
5. Start the add-on, check the logs of the add-on to see if everything went well.
6. 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
**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: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `esphome_version`
Manually override which ESPHome version to use in the add-on.
For example to install the latest development version, use `"esphome_version": "dev"`,
or for version 1.14.0: `"esphome_version": "v1.14.0"`.
This can also be used to specify a branch of a fork of the esphome repository.
For example to install the test_new_component branch of a fork made by user123, use `"user123:test_new_component"`.
This usage assumes the forked repository is named `esphome`.
Please note that this does not always work and is only meant for testing, usually the
ESPHome add-on and dashboard version must match to guarantee a working system.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://beta.esphome.io/components/sensor/dht.html
[releases]: https://beta.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-beta/logo.png
[website]: https://beta.esphome.io/

View File

@@ -1,47 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"auto_uart": true,
"boot": "auto",
"description": "Beta version of ESPHome Hass.io add-on.",
"hassio_api": true,
"hassio_role": "default",
"homeassistant_api": false,
"host_network": true,
"image": "esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (beta)",
"options": {},
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (Not required for Home Assistant Ingress)"
},
"schema": {
"certfile": "str?",
"esphome_version": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-beta",
"stage": "experimental",
"startup": "application",
"url": "https://beta.esphome.io/",
"version": "1.15.2",
"webui": "http://[HOST]:[PORT:6052]"
}

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

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 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)

1
esphome-dev/CHANGELOG.md Normal file
View File

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

73
esphome-dev/DOCS.md Normal file
View File

@@ -0,0 +1,73 @@
# ESPHome DEV add on
This is **development** version of the ESPHome add on.
To deploy production nodes please use mainstream release add on.
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
### Option: `esphome_fork`
Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
or you can specify the username of the fork owner and branch `username:branch` which
assumes the repository is named `esphome` still.
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**.
## General ESPHome add on configurations
General options also available in other versions.
### Option: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.

View File

@@ -1,17 +1,10 @@
ARG BUILD_FROM=esphome/esphome-hassio-base-amd64:2.0.0
ARG BUILD_FROM=esphome/esphome-hassio-amd64:dev
FROM ${BUILD_FROM}
# Copy root filesystem
COPY rootfs /
RUN pip3 install --no-cache-dir https://github.com/esphome/esphome/archive/dev.zip
# Build arguments
ARG BUILD_VERSION=dev
# Labels
LABEL \
io.hass.name="ESPHome" \
io.hass.description="Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files" \
io.hass.type="addon" \
io.hass.version=dev

View File

@@ -0,0 +1 @@
Any edits should be made to the files in the 'template' directory

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Dev Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/master/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,101 +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/master/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/master/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>
## Installation
To install this Home Assistant add-on you need to add the ESPHome add-on repository
first:
1. Add the ESPHome add-ons repository to your Home Assistant instance. You can do this by navigating to the "Add-on store" tab in the Supervisor panel and then entering https://github.com/esphome/hassio in the "Add repository" field after selecting "Repositories" from the top-right menu.
2. Now scroll down and select the "ESPHome" add-on.
3. Press install to download the add-on and unpack it on your machine. This can take some time.
4. 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.
5. Start the add-on, check the logs of the add-on to see if everything went well.
6. 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
**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: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `esphome_version`
Manually override which ESPHome version to use in the add-on.
For example to install the latest development version, use `"esphome_version": "dev"`,
or for version 1.14.0: `"esphome_version": "v1.14.0"`.
This can also be used to specify a branch of a fork of the esphome repository.
For example to install the test_new_component branch of a fork made by user123, use `"user123:test_new_component"`.
This usage assumes the forked repository is named `esphome`.
Please note that this does not always work and is only meant for testing, usually the
ESPHome add-on and dashboard version must match to guarantee a working system.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://next.esphome.io/components/sensor/dht.html
[releases]: https://next.esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome-dev/logo.png
[website]: https://next.esphome.io/

View File

@@ -1,9 +0,0 @@
{
"args": {},
"build_from": {
"aarch64": "esphome/esphome-hassio-base-aarch64:2.5.0",
"amd64": "esphome/esphome-hassio-base-amd64:2.5.0",
"armv7": "esphome/esphome-hassio-base-armv7:2.5.0"
},
"squash": false
}

5
esphome-dev/build.yaml Normal file
View File

@@ -0,0 +1,5 @@
---
build_from:
aarch64: ghcr.io/esphome/esphome-hassio:dev
amd64: ghcr.io/esphome/esphome-hassio:dev
armv7: ghcr.io/esphome/esphome-hassio:dev

View File

@@ -1,48 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"auto_uart": true,
"boot": "auto",
"description": "Development Version! Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files",
"hassio_api": true,
"hassio_role": "default",
"homeassistant_api": false,
"host_network": true,
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (dev)",
"options": {
"esphome_version": "dev"
},
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (Not required for Home Assistant Ingress)"
},
"schema": {
"certfile": "str?",
"esphome_version": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-dev",
"stage": "experimental",
"startup": "application",
"url": "https://next.esphome.io/",
"version": "dev",
"webui": "http://[HOST]:[PORT:6052]"
}

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

@@ -0,0 +1,41 @@
---
url: https://next.esphome.io/
arch:
- amd64
- armv7
- aarch64
hassio_api: true
auth_api: true
host_network: true
ingress: true
ingress_port: 0
panel_icon: mdi:chip
uart: true
ports:
6052/tcp: null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
esphome_fork: str?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
name: ESPHome (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: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,41 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# This files check if all user configuration requirements are met
# ==============================================================================
# Check SSL requirements, if enabled
if bashio::config.true 'ssl'; then
if ! bashio::config.has_value 'certfile'; then
bashio::fatal 'SSL is enabled, but no certfile was specified.'
bashio::exit.nok
fi
if ! bashio::config.has_value 'keyfile'; then
bashio::fatal 'SSL is enabled, but no keyfile was specified'
bashio::exit.nok
fi
certfile="/ssl/$(bashio::config 'certfile')"
keyfile="/ssl/$(bashio::config 'keyfile')"
if ! bashio::fs.file_exists "${certfile}"; then
if ! bashio::fs.file_exists "${keyfile}"; then
# Both files are missing, let's print a friendlier error message
bashio::log.fatal 'You enabled encrypted connections using the "ssl": true option.'
bashio::log.fatal "However, the SSL files '${certfile}' and '${keyfile}'"
bashio::log.fatal "were not found. If you're using Hass.io on your local network and don't want"
bashio::log.fatal 'to encrypt connections to the ESPHome dashboard, you can manually disable'
bashio::log.fatal 'SSL by setting "ssl" to false."'
bashio::exit.nok
fi
bashio::log.fatal "The configured certfile '${certfile}' was not found."
bashio::exit.nok
fi
if ! bashio::fs.file_exists "/ssl/$(bashio::config 'keyfile')"; then
bashio::log.fatal "The configured keyfile '${keyfile}' was not found."
bashio::exit.nok
fi
fi

View File

@@ -1,34 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Configures NGINX for use with ESPHome
# ==============================================================================
declare certfile
declare keyfile
declare direct_port
declare ingress_interface
declare ingress_port
mkdir -p /var/log/nginx
direct_port=$(bashio::addon.port 6052)
if bashio::var.has_value "${direct_port}"; then
if bashio::config.true 'ssl'; then
certfile=$(bashio::config 'certfile')
keyfile=$(bashio::config 'keyfile')
mv /etc/nginx/servers/direct-ssl.disabled /etc/nginx/servers/direct.conf
sed -i "s/%%certfile%%/${certfile}/g" /etc/nginx/servers/direct.conf
sed -i "s/%%keyfile%%/${keyfile}/g" /etc/nginx/servers/direct.conf
else
mv /etc/nginx/servers/direct.disabled /etc/nginx/servers/direct.conf
fi
sed -i "s/%%port%%/${direct_port}/g" /etc/nginx/servers/direct.conf
fi
ingress_port=$(bashio::addon.ingress_port)
ingress_interface=$(bashio::addon.ip_address)
sed -i "s/%%port%%/${ingress_port}/g" /etc/nginx/servers/ingress.conf
sed -i "s/%%interface%%/${ingress_interface}/g" /etc/nginx/servers/ingress.conf

View File

@@ -0,0 +1,47 @@
#!/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

View File

@@ -1,23 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# This files installs the user ESPHome version if specified
# ==============================================================================
declare esphome_version
if bashio::config.has_value 'esphome_version'; then
esphome_version=$(bashio::config 'esphome_version')
if [[ $esphome_version == *":"* ]]; then
IFS=':' read -r -a array <<< "$esphome_version"
username=${array[0]}
ref=${array[1]}
else
username="esphome"
ref=$esphome_version
fi
full_url="https://github.com/${username}/esphome/archive/${ref}.zip"
bashio::log.info "Installing esphome version '${esphome_version}' (${full_url})..."
pip3 install -U --no-cache-dir "${full_url}" \
|| bashio::exit.nok "Failed installing esphome pinned version."
fi

View File

@@ -1,11 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# This files migrates the esphome config directory from the old path
# ==============================================================================
if [[ ! -d /config/esphome && -d /config/esphomeyaml ]]; then
echo "Moving config directory from /config/esphomeyaml to /config/esphome"
mv /config/esphomeyaml /config/esphome
mv /config/esphome/.esphomeyaml /config/esphome/.esphome
fi

View File

@@ -1,96 +0,0 @@
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}

View File

@@ -1,16 +0,0 @@
proxy_http_version 1.1;
proxy_ignore_client_abort off;
proxy_read_timeout 86400s;
proxy_redirect off;
proxy_send_timeout 86400s;
proxy_max_temp_file_size 0;
proxy_set_header Accept-Encoding "";
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Authorization "";

View File

@@ -1,6 +0,0 @@
root /dev/null;
server_name $hostname;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;

View File

@@ -1,9 +0,0 @@
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;

View File

@@ -1,33 +0,0 @@
daemon off;
user root;
pid /var/run/nginx.pid;
worker_processes 1;
# Hass.io addon log
error_log /proc/1/fd/1 error;
events {
worker_connections 1024;
}
http {
include /etc/nginx/includes/mime.types;
access_log stdout;
default_type application/octet-stream;
gzip on;
keepalive_timeout 65;
sendfile on;
server_tokens off;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# Use Hass.io supervisor as resolver
resolver 172.30.32.2;
upstream esphome {
server unix:/var/run/esphome.sock;
}
include /etc/nginx/servers/*.conf;
}

View File

@@ -1,22 +0,0 @@
server {
listen %%port%% default_server ssl http2;
include /etc/nginx/includes/server_params.conf;
include /etc/nginx/includes/proxy_params.conf;
include /etc/nginx/includes/ssl_params.conf;
ssl on;
ssl_certificate /ssl/%%certfile%%;
ssl_certificate_key /ssl/%%keyfile%%;
# Clear Hass.io Ingress header
proxy_set_header X-Hassio-Ingress "";
# Redirect http requests to https on the same port.
# https://rageagainstshell.com/2016/11/redirect-http-to-https-on-the-same-port-in-nginx/
error_page 497 https://$http_host$request_uri;
location / {
proxy_pass http://esphome;
}
}

View File

@@ -1,12 +0,0 @@
server {
listen %%port%% default_server;
include /etc/nginx/includes/server_params.conf;
include /etc/nginx/includes/proxy_params.conf;
# Clear Hass.io Ingress header
proxy_set_header X-Hassio-Ingress "";
location / {
proxy_pass http://esphome;
}
}

View File

@@ -1,16 +0,0 @@
server {
listen %%interface%%:%%port%% default_server;
include /etc/nginx/includes/server_params.conf;
include /etc/nginx/includes/proxy_params.conf;
# Set Hass.io Ingress header
proxy_set_header X-Hassio-Ingress "YES";
location / {
# Only allow from Hass.io supervisor
allow 172.30.32.2;
deny all;
proxy_pass http://esphome;
}
}

View File

@@ -1,9 +0,0 @@
#!/usr/bin/execlineb -S0
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Take down the S6 supervision tree when ESPHome fails
# ==============================================================================
if -n { s6-test $# -ne 0 }
if -n { s6-test ${1} -eq 256 }
s6-svscanctl -t /var/run/s6/services

View File

@@ -1,26 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Runs the ESPHome dashboard
# ==============================================================================
export ESPHOME_IS_HASSIO=true
if bashio::config.true 'leave_front_door_open'; then
export DISABLE_HA_AUTHENTICATION=true
fi
if bashio::config.true 'streamer_mode'; then
export ESPHOME_STREAMER_MODE=true
fi
if bashio::config.true 'status_use_ping'; then
export ESPHOME_DASHBOARD_USE_PING=true
fi
if bashio::config.has_value 'relative_url'; then
export ESPHOME_DASHBOARD_RELATIVE_URL=$(bashio::config 'relative_url')
fi
bashio::log.info "Starting ESPHome dashboard..."
exec esphome /config/esphome dashboard --socket /var/run/esphome.sock --hassio

View File

@@ -1,9 +0,0 @@
#!/usr/bin/execlineb -S0
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Take down the S6 supervision tree when NGINX fails
# ==============================================================================
if -n { s6-test $# -ne 0 }
if -n { s6-test ${1} -eq 256 }
s6-svscanctl -t /var/run/s6/services

View File

@@ -1,14 +0,0 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Community Hass.io Add-ons: ESPHome
# Runs the NGINX proxy
# ==============================================================================
bashio::log.info "Waiting for dashboard to come up..."
while [[ ! -S /var/run/esphome.sock ]]; do
sleep 0.5
done
bashio::log.info "Starting NGINX..."
exec nginx

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)

169
esphome/CHANGELOG.md Normal file
View File

@@ -0,0 +1,169 @@
## 2023.11.0
## Full list of changes
### New Components
- Add Support for Sensirion SFA30 sensor [esphome#5519](https://github.com/esphome/esphome/pull/5519) by [@ghsensdev](https://github.com/ghsensdev) (new-integration)
- add uart button [esphome#5540](https://github.com/esphome/esphome/pull/5540) by [@ssieb](https://github.com/ssieb) (new-integration)
- Add ZH/LT-01 climate component with IR receiver option [esphome#4333](https://github.com/esphome/esphome/pull/4333) by [@cfeenstra1024](https://github.com/cfeenstra1024) (new-integration)
- Feat: Add GREE climateir component [esphome#4464](https://github.com/esphome/esphome/pull/4464) by [@PiuPiuson](https://github.com/PiuPiuson) (new-integration)
- AMS iAQ Core CO2 sensor component [esphome#5192](https://github.com/esphome/esphome/pull/5192) by [@yozik04](https://github.com/yozik04) (new-integration)
- Add IR Noblex climate component [esphome#4913](https://github.com/esphome/esphome/pull/4913) by [@AGalfra](https://github.com/AGalfra) (new-integration)
- Add text component [esphome#5336](https://github.com/esphome/esphome/pull/5336) by [@EternityForest](https://github.com/EternityForest) (new-integration)
- Add support for honeywellabp2 pressure sensor [esphome#5422](https://github.com/esphome/esphome/pull/5422) by [@jpfaff](https://github.com/jpfaff) (new-integration)
- Add Emc2101 [esphome#4491](https://github.com/esphome/esphome/pull/4491) by [@ellull](https://github.com/ellull) (new-integration)
- Add support for Qwiic PIR binary sensor [esphome#5194](https://github.com/esphome/esphome/pull/5194) by [@kahrendt](https://github.com/kahrendt) (new-integration)
- Add dfrobot_sen0395 mmwave radar component [esphome#4203](https://github.com/esphome/esphome/pull/4203) by [@niklasweber](https://github.com/niklasweber) (new-integration)
- Add HLK-LD2420 mmWave Radar module component. [esphome#4847](https://github.com/esphome/esphome/pull/4847) by [@descipher](https://github.com/descipher) (new-integration)
- Add Micronova component [esphome#4760](https://github.com/esphome/esphome/pull/4760) by [@Jorre05](https://github.com/Jorre05) (new-integration)
- Add differential pressure sensor support for CFSensor XGZP68xxD devices [esphome#5562](https://github.com/esphome/esphome/pull/5562) by [@gcormier](https://github.com/gcormier) (new-integration)
- Add spi support for ade7953 [esphome#5439](https://github.com/esphome/esphome/pull/5439) by [@angelnu](https://github.com/angelnu) (new-integration)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
### Breaking Changes
- Hydreon updates [esphome#5424](https://github.com/esphome/esphome/pull/5424) by [@jj-uk](https://github.com/jj-uk) (breaking-change)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
### Beta Changes
- Handle nanoseconds in config [esphome#5695](https://github.com/esphome/esphome/pull/5695) by [@jesserockz](https://github.com/jesserockz)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
- Fix static assets cache logic [esphome#5700](https://github.com/esphome/esphome/pull/5700) by [@bdraco](https://github.com/bdraco)
- Use piwheels for armv7 docker image builds [esphome#5703](https://github.com/esphome/esphome/pull/5703) by [@bdraco](https://github.com/bdraco)
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable [esphome#5704](https://github.com/esphome/esphome/pull/5704) by [@Rapsssito](https://github.com/Rapsssito)
- Bump aioesphomeapi to 18.2.7 [esphome#5706](https://github.com/esphome/esphome/pull/5706) by [@bdraco](https://github.com/bdraco)
- Update Dockerfile to use piwheels for armv7 [esphome#5709](https://github.com/esphome/esphome/pull/5709) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf from 0.120.0 to 0.122.3 [esphome#5715](https://github.com/esphome/esphome/pull/5715) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
- Fix zeroconf name resolution refactoring error [esphome#5725](https://github.com/esphome/esphome/pull/5725) by [@bdraco](https://github.com/bdraco)
- Missed ifdefs [esphome#5727](https://github.com/esphome/esphome/pull/5727) by [@descipher](https://github.com/descipher)
- Bump aioesphomeapi from 18.2.7 to 18.4.0 [esphome#5735](https://github.com/esphome/esphome/pull/5735) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Migrate to using aioesphomeapi for the log runner to fix multiple issues [esphome#5733](https://github.com/esphome/esphome/pull/5733) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf to 0.123.0 [esphome#5736](https://github.com/esphome/esphome/pull/5736) by [@bdraco](https://github.com/bdraco)
- Handle wake word not set up internally [esphome#5738](https://github.com/esphome/esphome/pull/5738) by [@jesserockz](https://github.com/jesserockz)
- dashboard: remove usage of codecs module [esphome#5741](https://github.com/esphome/esphome/pull/5741) by [@bdraco](https://github.com/bdraco)
- dashboard: Run get_serial_ports in the executor [esphome#5740](https://github.com/esphome/esphome/pull/5740) by [@bdraco](https://github.com/bdraco)
- Generate partitions.csv based on flash size [esphome#5697](https://github.com/esphome/esphome/pull/5697) by [@kbx81](https://github.com/kbx81)
- Allow setup to continue past mqtt if network/wifi is disabled [esphome#5754](https://github.com/esphome/esphome/pull/5754) by [@jesserockz](https://github.com/jesserockz)
- Dont dump wifi info when disabled [esphome#5755](https://github.com/esphome/esphome/pull/5755) by [@jesserockz](https://github.com/jesserockz)
### All changes
- Splits FastLed test scripts out of test1.yaml [esphome#5522](https://github.com/esphome/esphome/pull/5522) by [@nielsnl68](https://github.com/nielsnl68)
- Add round sensor filter [esphome#5532](https://github.com/esphome/esphome/pull/5532) by [@jesserockz](https://github.com/jesserockz)
- Add Support for Sensirion SFA30 sensor [esphome#5519](https://github.com/esphome/esphome/pull/5519) by [@ghsensdev](https://github.com/ghsensdev) (new-integration)
- Change UART source clock to `UART_SCLK_DEFAULT` when IDF >=v5 [esphome#5533](https://github.com/esphome/esphome/pull/5533) by [@leoshusar](https://github.com/leoshusar)
- add uart button [esphome#5540](https://github.com/esphome/esphome/pull/5540) by [@ssieb](https://github.com/ssieb) (new-integration)
- add on/off options for uart switch [esphome#5539](https://github.com/esphome/esphome/pull/5539) by [@ssieb](https://github.com/ssieb)
- Update docker base and packages + docker python 3.11 [esphome#5473](https://github.com/esphome/esphome/pull/5473) by [@bdraco](https://github.com/bdraco)
- IDF 5 fixes for various components from test1.yaml [esphome#5451](https://github.com/esphome/esphome/pull/5451) by [@kbx81](https://github.com/kbx81)
- Bump aioesphomeapi from 15.0.0 to 18.0.6 [esphome#5557](https://github.com/esphome/esphome/pull/5557) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump zeroconf from 0.115.1 to 0.119.0 [esphome#5560](https://github.com/esphome/esphome/pull/5560) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add config to allow suppression of warnings about use of strapping pins [esphome#5287](https://github.com/esphome/esphome/pull/5287) by [@clydebarrow](https://github.com/clydebarrow)
- Hydreon updates [esphome#5424](https://github.com/esphome/esphome/pull/5424) by [@jj-uk](https://github.com/jj-uk) (breaking-change)
- Bump actions/checkout from 4.1.0 to 4.1.1 [esphome#5551](https://github.com/esphome/esphome/pull/5551) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pyupgrade from 3.10.1 to 3.13.0 [esphome#5428](https://github.com/esphome/esphome/pull/5428) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump tzlocal from 5.0.1 to 5.1 [esphome#5480](https://github.com/esphome/esphome/pull/5480) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump black from 23.9.1 to 23.10.0 [esphome#5561](https://github.com/esphome/esphome/pull/5561) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Fan no off cycle action [esphome#5564](https://github.com/esphome/esphome/pull/5564) by [@skykingjwc](https://github.com/skykingjwc)
- Bump aioesphomeapi from 18.0.6 to 18.0.7 [esphome#5573](https://github.com/esphome/esphome/pull/5573) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Remove unnecessary checks in Nextion component [esphome#5578](https://github.com/esphome/esphome/pull/5578) by [@edwardtfn](https://github.com/edwardtfn)
- update storage version from mdns [esphome#5584](https://github.com/esphome/esphome/pull/5584) by [@glmnet](https://github.com/glmnet)
- set Nextion protocol reparse mode [esphome#5484](https://github.com/esphome/esphome/pull/5484) by [@edwardtfn](https://github.com/edwardtfn)
- Add address text sensor to WireGuard [esphome#5576](https://github.com/esphome/esphome/pull/5576) by [@droscy](https://github.com/droscy)
- Add LibreTiny hardwares to PR Template [esphome#5575](https://github.com/esphome/esphome/pull/5575) by [@HeMan](https://github.com/HeMan)
- Bump pytest-mock from 3.11.1 to 3.12.0 [esphome#5571](https://github.com/esphome/esphome/pull/5571) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump pyupgrade from 3.13.0 to 3.15.0 [esphome#5570](https://github.com/esphome/esphome/pull/5570) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add ZH/LT-01 climate component with IR receiver option [esphome#4333](https://github.com/esphome/esphome/pull/4333) by [@cfeenstra1024](https://github.com/cfeenstra1024) (new-integration)
- Feat: Add GREE climateir component [esphome#4464](https://github.com/esphome/esphome/pull/4464) by [@PiuPiuson](https://github.com/PiuPiuson) (new-integration)
- AMS iAQ Core CO2 sensor component [esphome#5192](https://github.com/esphome/esphome/pull/5192) by [@yozik04](https://github.com/yozik04) (new-integration)
- Add IR Noblex climate component [esphome#4913](https://github.com/esphome/esphome/pull/4913) by [@AGalfra](https://github.com/AGalfra) (new-integration)
- Bump aioesphomeapi from 18.0.7 to 18.0.12 [esphome#5597](https://github.com/esphome/esphome/pull/5597) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add text component [esphome#5336](https://github.com/esphome/esphome/pull/5336) by [@EternityForest](https://github.com/EternityForest) (new-integration)
- Fix exception handling when loading packages [esphome#5569](https://github.com/esphome/esphome/pull/5569) by [@dentra](https://github.com/dentra)
- Add support for honeywellabp2 pressure sensor [esphome#5422](https://github.com/esphome/esphome/pull/5422) by [@jpfaff](https://github.com/jpfaff) (new-integration)
- Add Emc2101 [esphome#4491](https://github.com/esphome/esphome/pull/4491) by [@ellull](https://github.com/ellull) (new-integration)
- Fix: Incorporate unique serial number in preference's hash for multiple Sensirion sensors [esphome#5479](https://github.com/esphome/esphome/pull/5479) by [@kahrendt](https://github.com/kahrendt)
- Add support for Qwiic PIR binary sensor [esphome#5194](https://github.com/esphome/esphome/pull/5194) by [@kahrendt](https://github.com/kahrendt) (new-integration)
- Add ignore out of range option for clamp filter [esphome#5455](https://github.com/esphome/esphome/pull/5455) by [@kahrendt](https://github.com/kahrendt)
- Print text mqtt command topic [esphome#5601](https://github.com/esphome/esphome/pull/5601) by [@jesserockz](https://github.com/jesserockz)
- Correctly allow mqtt topics to be none so ESPHome does not sub/pub to them [esphome#5213](https://github.com/esphome/esphome/pull/5213) by [@jesserockz](https://github.com/jesserockz)
- SX1509 output debounce fix (resolves esphome/issues#4402) [esphome#4672](https://github.com/esphome/esphome/pull/4672) by [@tracestep](https://github.com/tracestep)
- Add details when error loading package [esphome#5603](https://github.com/esphome/esphome/pull/5603) by [@dentra](https://github.com/dentra)
- Fallback to main secrets.yaml for packages [esphome#5604](https://github.com/esphome/esphome/pull/5604) by [@dentra](https://github.com/dentra)
- Add area (zone) to esphome core config to be suggested through API and MQTT. [esphome#5602](https://github.com/esphome/esphome/pull/5602) by [@Cossid](https://github.com/Cossid)
- Devcontainer: allow pip install and dont warn about root user [esphome#5608](https://github.com/esphome/esphome/pull/5608) by [@jesserockz](https://github.com/jesserockz)
- Validate test files before compiling [esphome#5611](https://github.com/esphome/esphome/pull/5611) by [@jesserockz](https://github.com/jesserockz)
- Minor defines.h updates [esphome#5610](https://github.com/esphome/esphome/pull/5610) by [@jesserockz](https://github.com/jesserockz)
- timeout filter: return value [esphome#5612](https://github.com/esphome/esphome/pull/5612) by [@jesserockz](https://github.com/jesserockz)
- Add dfrobot_sen0395 mmwave radar component [esphome#4203](https://github.com/esphome/esphome/pull/4203) by [@niklasweber](https://github.com/niklasweber) (new-integration)
- refactor mcp4728 component [esphome#5609](https://github.com/esphome/esphome/pull/5609) by [@ssieb](https://github.com/ssieb)
- Fix HA error related to incorrect state class [esphome#5605](https://github.com/esphome/esphome/pull/5605) by [@nagyrobi](https://github.com/nagyrobi)
- Fix xpt2046 for IDF 5 [esphome#5614](https://github.com/esphome/esphome/pull/5614) by [@kbx81](https://github.com/kbx81)
- IDF 5 fixes for various components from test4.yaml [esphome#5622](https://github.com/esphome/esphome/pull/5622) by [@kbx81](https://github.com/kbx81)
- IDF 5 fixes for various components from test2.yaml [esphome#5621](https://github.com/esphome/esphome/pull/5621) by [@kbx81](https://github.com/kbx81)
- Fix armv7 docker builds [esphome#5630](https://github.com/esphome/esphome/pull/5630) by [@bdraco](https://github.com/bdraco)
- Bump aioesphomeapi from 18.0.12 to 18.2.0 [esphome#5606](https://github.com/esphome/esphome/pull/5606) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add needs-docs workflow to fail CI [esphome#5643](https://github.com/esphome/esphome/pull/5643) by [@jesserockz](https://github.com/jesserockz)
- Add support for PCA9535 16 bit I/O expander [esphome#5634](https://github.com/esphome/esphome/pull/5634) by [@clydebarrow](https://github.com/clydebarrow)
- Fix nextion waveform sending for multiple waveforms [esphome#4408](https://github.com/esphome/esphome/pull/4408) by [@gpambrozio](https://github.com/gpambrozio)
- Allow validation of pins based on hub config [esphome#5647](https://github.com/esphome/esphome/pull/5647) by [@jesserockz](https://github.com/jesserockz)
- Bump aioesphomeapi from 18.2.0 to 18.2.1 [esphome#5653](https://github.com/esphome/esphome/pull/5653) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Validate sn74hc595 pin number are within range [esphome#5655](https://github.com/esphome/esphome/pull/5655) by [@jesserockz](https://github.com/jesserockz)
- Update PCA9554 pin checks to new facility [esphome#5656](https://github.com/esphome/esphome/pull/5656) by [@clydebarrow](https://github.com/clydebarrow)
- Update mDNS component to 1.2.2 [esphome#5654](https://github.com/esphome/esphome/pull/5654) by [@HeMan](https://github.com/HeMan)
- Fix return value of run_external_command [esphome#5657](https://github.com/esphome/esphome/pull/5657) by [@jesserockz](https://github.com/jesserockz)
- Update RTTTL component to allow I2S [esphome#5177](https://github.com/esphome/esphome/pull/5177) by [@nielsnl68](https://github.com/nielsnl68)
- Bump flake8 version in pre-commit to match requirements file [esphome#5658](https://github.com/esphome/esphome/pull/5658) by [@jesserockz](https://github.com/jesserockz)
- Bump pytest from 7.4.2 to 7.4.3 [esphome#5599](https://github.com/esphome/esphome/pull/5599) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump tzlocal from 5.1 to 5.2 [esphome#5594](https://github.com/esphome/esphome/pull/5594) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Bump black from 23.10.0 to 23.10.1 [esphome#5593](https://github.com/esphome/esphome/pull/5593) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add Healthcheck to Dockerfile [esphome#5651](https://github.com/esphome/esphome/pull/5651) by [@JcMinarro](https://github.com/JcMinarro)
- Add HLK-LD2420 mmWave Radar module component. [esphome#4847](https://github.com/esphome/esphome/pull/4847) by [@descipher](https://github.com/descipher) (new-integration)
- Add Micronova component [esphome#4760](https://github.com/esphome/esphome/pull/4760) by [@Jorre05](https://github.com/Jorre05) (new-integration)
- Add basic shell autocompletion using argcomplete [esphome#5618](https://github.com/esphome/esphome/pull/5618) by [@Nardol](https://github.com/Nardol)
- Fixed int variables for user defined service in case of ESP32-C3 [esphome#5675](https://github.com/esphome/esphome/pull/5675) by [@paveldn](https://github.com/paveldn)
- Add callback for raw sml messages [esphome#5668](https://github.com/esphome/esphome/pull/5668) by [@micw](https://github.com/micw)
- Fix compile with latest esp-idf on esp32c6 [esphome#5677](https://github.com/esphome/esphome/pull/5677) by [@DAVe3283](https://github.com/DAVe3283)
- Null topic_prefix disables MQTT publishing/subscription unless topic is explicitly configured [esphome#5644](https://github.com/esphome/esphome/pull/5644) by [@kahrendt](https://github.com/kahrendt)
- feat: Add ESP32 BLE enable/disable automations [esphome#5616](https://github.com/esphome/esphome/pull/5616) by [@Rapsssito](https://github.com/Rapsssito)
- ble_client rssi sensor fix when not connected [esphome#5632](https://github.com/esphome/esphome/pull/5632) by [@jesserockz](https://github.com/jesserockz)
- Add Byron Doorbell RF protocol [esphome#4718](https://github.com/esphome/esphome/pull/4718) by [@marshn](https://github.com/marshn)
- Refactor dashboard zeroconf support [esphome#5681](https://github.com/esphome/esphome/pull/5681) by [@bdraco](https://github.com/bdraco)
- Allow static assets to be cached if not in debug mode [esphome#5684](https://github.com/esphome/esphome/pull/5684) by [@jesserockz](https://github.com/jesserockz)
- Remove extra code in old sgp40 [esphome#5685](https://github.com/esphome/esphome/pull/5685) by [@jesserockz](https://github.com/jesserockz)
- Allow pulse light effect to have separate on and off transition lengths [esphome#5659](https://github.com/esphome/esphome/pull/5659) by [@jesserockz](https://github.com/jesserockz)
- Add differential pressure sensor support for CFSensor XGZP68xxD devices [esphome#5562](https://github.com/esphome/esphome/pull/5562) by [@gcormier](https://github.com/gcormier) (new-integration)
- Bump zeroconf from 0.119.0 to 0.120.0 [esphome#5682](https://github.com/esphome/esphome/pull/5682) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add spi support for ade7953 [esphome#5439](https://github.com/esphome/esphome/pull/5439) by [@angelnu](https://github.com/angelnu) (new-integration)
- Remove page jump on Nextion startup [esphome#5673](https://github.com/esphome/esphome/pull/5673) by [@edwardtfn](https://github.com/edwardtfn)
- [web_server] Adds the ability to handle Private Network Access preflight requests [esphome#5669](https://github.com/esphome/esphome/pull/5669) by [@DanielBaulig](https://github.com/DanielBaulig)
- Update esphome-dashboard to version 20231107.0 [esphome#5686](https://github.com/esphome/esphome/pull/5686) by [@jesserockz](https://github.com/jesserockz)
- add wifi.on_connect and wifi.on_disconnect triggers [esphome#3639](https://github.com/esphome/esphome/pull/3639) by [@ChemicalXandco](https://github.com/ChemicalXandco)
- Implement a memory cache for dashboard entries to avoid frequent disk reads [esphome#5687](https://github.com/esphome/esphome/pull/5687) by [@bdraco](https://github.com/bdraco)
- support spi for sn74hc595 [esphome#5491](https://github.com/esphome/esphome/pull/5491) by [@angelnu](https://github.com/angelnu)
- Handle on_disconnect when Wi-Fi is disabled [esphome#5691](https://github.com/esphome/esphome/pull/5691) by [@kbx81](https://github.com/kbx81)
- Bump aioesphomeapi from 18.2.1 to 18.2.4 [esphome#5692](https://github.com/esphome/esphome/pull/5692) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Handle nanoseconds in config [esphome#5695](https://github.com/esphome/esphome/pull/5695) by [@jesserockz](https://github.com/jesserockz)
- Fix esp32_rmt_led_strip custom timing units [esphome#5696](https://github.com/esphome/esphome/pull/5696) by [@jesserockz](https://github.com/jesserockz) (breaking-change)
- Fix static assets cache logic [esphome#5700](https://github.com/esphome/esphome/pull/5700) by [@bdraco](https://github.com/bdraco)
- Use piwheels for armv7 docker image builds [esphome#5703](https://github.com/esphome/esphome/pull/5703) by [@bdraco](https://github.com/bdraco)
- fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable [esphome#5704](https://github.com/esphome/esphome/pull/5704) by [@Rapsssito](https://github.com/Rapsssito)
- Bump aioesphomeapi to 18.2.7 [esphome#5706](https://github.com/esphome/esphome/pull/5706) by [@bdraco](https://github.com/bdraco)
- Update Dockerfile to use piwheels for armv7 [esphome#5709](https://github.com/esphome/esphome/pull/5709) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf from 0.120.0 to 0.122.3 [esphome#5715](https://github.com/esphome/esphome/pull/5715) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Add resistance_sampler interface for config validation [esphome#5718](https://github.com/esphome/esphome/pull/5718) by [@jesserockz](https://github.com/jesserockz) (new-integration)
- Fix zeroconf name resolution refactoring error [esphome#5725](https://github.com/esphome/esphome/pull/5725) by [@bdraco](https://github.com/bdraco)
- Missed ifdefs [esphome#5727](https://github.com/esphome/esphome/pull/5727) by [@descipher](https://github.com/descipher)
- Bump aioesphomeapi from 18.2.7 to 18.4.0 [esphome#5735](https://github.com/esphome/esphome/pull/5735) by [@dependabot[bot]](https://github.com/apps/dependabot)
- Migrate to using aioesphomeapi for the log runner to fix multiple issues [esphome#5733](https://github.com/esphome/esphome/pull/5733) by [@bdraco](https://github.com/bdraco)
- Bump zeroconf to 0.123.0 [esphome#5736](https://github.com/esphome/esphome/pull/5736) by [@bdraco](https://github.com/bdraco)
- Handle wake word not set up internally [esphome#5738](https://github.com/esphome/esphome/pull/5738) by [@jesserockz](https://github.com/jesserockz)
- dashboard: remove usage of codecs module [esphome#5741](https://github.com/esphome/esphome/pull/5741) by [@bdraco](https://github.com/bdraco)
- dashboard: Run get_serial_ports in the executor [esphome#5740](https://github.com/esphome/esphome/pull/5740) by [@bdraco](https://github.com/bdraco)
- Generate partitions.csv based on flash size [esphome#5697](https://github.com/esphome/esphome/pull/5697) by [@kbx81](https://github.com/kbx81)
- Allow setup to continue past mqtt if network/wifi is disabled [esphome#5754](https://github.com/esphome/esphome/pull/5754) by [@jesserockz](https://github.com/jesserockz)
- Dont dump wifi info when disabled [esphome#5755](https://github.com/esphome/esphome/pull/5755) by [@jesserockz](https://github.com/jesserockz)

71
esphome/DOCS.md Normal file
View File

@@ -0,0 +1,71 @@
# 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. Search for the “ESPHome” add-on in the Supervisor add-on store.
2. Press install to download the add-on and unpack it on your machine. This can take some time.
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
4. Start the add-on, check the logs of the add-on to see if everything went well.
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
Example add-on configuration:
```json
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
### Option: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.

View File

@@ -0,0 +1 @@
Any edits should be made to the files in the 'template' directory

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/master/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,101 +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/master/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/master/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>
## Installation
To install this Home Assistant add-on you need to add the ESPHome add-on repository
first:
1. Add the ESPHome add-ons repository to your Home Assistant instance. You can do this by navigating to the "Add-on store" tab in the Supervisor panel and then entering https://github.com/esphome/hassio in the "Add repository" field after selecting "Repositories" from the top-right menu.
2. Now scroll down and select the "ESPHome" add-on.
3. Press install to download the add-on and unpack it on your machine. This can take some time.
4. 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.
5. Start the add-on, check the logs of the add-on to see if everything went well.
6. 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
**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: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `esphome_version`
Manually override which ESPHome version to use in the add-on.
For example to install the latest development version, use `"esphome_version": "dev"`,
or for version 1.14.0: `"esphome_version": "v1.14.0"`.
This can also be used to specify a branch of a fork of the esphome repository.
For example to install the test_new_component branch of a fork made by user123, use `"user123:test_new_component"`.
This usage assumes the forked repository is named `esphome`.
Please note that this does not always work and is only meant for testing, usually the
ESPHome add-on and dashboard version must match to guarantee a working system.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://esphome.io/components/sensor/dht.html
[releases]: https://esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome/logo.png
[website]: https://esphome.io/

View File

@@ -1,47 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"auto_uart": true,
"boot": "auto",
"description": "ESPHome Hass.io add-on for intelligently managing all your ESP8266/ESP32 devices.",
"hassio_api": true,
"hassio_role": "default",
"homeassistant_api": false,
"host_network": true,
"image": "esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome",
"options": {},
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (Not required for Home Assistant Ingress)"
},
"schema": {
"certfile": "str?",
"esphome_version": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome",
"stage": "stable",
"startup": "application",
"url": "https://esphome.io/",
"version": "1.15.2",
"webui": "http://[HOST]:[PORT:6052]"
}

37
esphome/config.yaml Normal file
View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 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,5 +1,5 @@
{
"name": "ESPHome Home Assistant Add-Ons",
"url": "https://github.com/esphome/hassio",
"maintainer": "ESPHome <contact@esphome.io>"
"name": "ESPHome",
"url": "https://esphome.io",
"maintainer": "ESPHome <esphome@nabucasa.com>"
}

View File

@@ -7,7 +7,7 @@ the Hassio config for each type of install: latest, beta and dev.
- `beta` points to the most recent full release or beta release (whichever is newer). This is so that beta image users automatically get upgraded to the stable install once it gets released.
- `dev` is an image that Hassio builds itself and contains the latest ESPHome version straigt from dev branch.
The config.json files are all automatically written with the script in this directory and the `template/config.yaml` file.
The config.json files are all automatically written with the script in this directory and the `template/addon_config.yaml` file.
To update one of the images: use

View File

@@ -60,7 +60,7 @@ def write_version(target: str, version: Version):
# version: '1.14.5' # BETA
# version: '1.14.5' # STABLE
sub(
'template/config.yaml',
'template/addon_config.yaml',
r" version: '[^']+' # {}".format(target.upper()),
f" version: '{version}' # {target.upper()}"
)

View File

@@ -4,52 +4,61 @@ import argparse
import yaml
from pathlib import Path
from enum import Enum
import json
from shutil import copyfile
import sys
import os
class Channel(Enum):
stable = 'stable'
beta = 'beta'
dev = 'dev'
stable = "stable"
beta = "beta"
dev = "dev"
def main(args):
parser = argparse.ArgumentParser(description='Generate ESPHome Home Assistant config.json')
parser.add_argument('channels', nargs='+', type=Channel, choices=list(Channel))
parser = argparse.ArgumentParser(
description="Generate ESPHome Home Assistant config.json"
)
parser.add_argument("channels", nargs="+", type=Channel, choices=list(Channel))
args = parser.parse_args(args)
root = Path(__file__).parent.parent
templ = root / 'template'
templ = root / "template"
with open(templ / "config.yaml", 'r') as f:
with open(templ / "addon_config.yaml", "r") as f:
config = yaml.safe_load(f)
copyf = config['copy_files']
copyf = config["copy_files"]
for channel in args.channels:
conf = config[f'esphome-{channel.value}']
base_image = conf.pop('base_image')
dir_ = root / conf.pop('directory')
path = dir_ / 'config.json'
with open(path, 'w') as f:
json.dump(conf, f, indent=2, sort_keys=True)
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:
yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True)
for file_, conf_ in copyf.items():
copyfile(templ / file_, dir_ / file_)
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:
f.write("Any edits should be made to the files in the 'template' directory")
if channel == Channel.dev:
path = dir_ / 'build.json'
path = dir_ / "build.yaml"
build_conf = {
'squash': False,
"build_from": {arch: base_image.format(arch=arch) for arch in conf['arch']},
"args": {}
"build_from": {
arch: base_image for arch in conf["arch"]
}
}
with open(path, 'w') as f:
json.dump(build_conf, f, indent=2, sort_keys=True)
print(f"Wrote {path}")
with open(path, "w") as f:
yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
if __name__ == '__main__':
if __name__ == "__main__":
main(sys.argv[1:])

View File

@@ -1 +1 @@
PyYAML==5.3.1
PyYAML==6.0

71
template/DOCS.md Normal file
View File

@@ -0,0 +1,71 @@
# 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. Search for the “ESPHome” add-on in the Supervisor add-on store.
2. Press install to download the add-on and unpack it on your machine. This can take some time.
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
4. Start the add-on, check the logs of the add-on to see if everything went well.
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
You can view the ESPHome documentation at https://esphome.io/
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
Example add-on configuration:
```json
{
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
### Option: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.

View File

@@ -1,9 +1,8 @@
# ESPHome Home Assistant Add-On
# ESPHome Add-On
[![ESPHome logo](https://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/logo.png)](https://esphome.io/)
[![ESPHome logo][logo]][website]
[![GitHub stars](https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000)](https://github.com/esphome/esphome)
[![GitHub Release][releases-shield]][releases]
[![GitHub stars][github-stars-shield]][repository]
[![Discord][discord-shield]][discord]
## About
@@ -14,10 +13,10 @@ is write YAML configuration files; the rest (over-the-air updates, compiling) is
handled by ESPHome.
<p align="center">
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/master/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,101 +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/master/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/master/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>
## Installation
To install this Home Assistant add-on you need to add the ESPHome add-on repository
first:
1. Add the ESPHome add-ons repository to your Home Assistant instance. You can do this by navigating to the "Add-on store" tab in the Supervisor panel and then entering https://github.com/esphome/hassio in the "Add repository" field after selecting "Repositories" from the top-right menu.
2. Now scroll down and select the "ESPHome" add-on.
3. Press install to download the add-on and unpack it on your machine. This can take some time.
4. 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.
5. Start the add-on, check the logs of the add-on to see if everything went well.
6. 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
**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: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `esphome_version`
Manually override which ESPHome version to use in the add-on.
For example to install the latest development version, use `"esphome_version": "dev"`,
or for version 1.14.0: `"esphome_version": "v1.14.0"`.
This can also be used to specify a branch of a fork of the esphome repository.
For example to install the test_new_component branch of a fork made by user123, use `"user123:test_new_component"`.
This usage assumes the forked repository is named `esphome`.
Please note that this does not always work and is only meant for testing, usually the
ESPHome add-on and dashboard version must match to guarantee a working system.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[dht22]: https://esphome.io/components/sensor/dht.html
[discord]: https://discord.gg/KhAMKrd
[releases-shield]: https://img.shields.io/github/release/esphome/esphome.svg
[releases]: https://esphome.io/changelog/index.html
[repository]: https://github.com/esphome/esphome
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
[github-stars-shield]: https://img.shields.io/github/stars/esphome/esphome.svg?style=social&label=Star&maxAge=2592000
[dht22]: https://esphome.io/components/sensor/dht.html
[releases]: https://esphome.io/changelog/index.html
[logo]: https://github.com/esphome/home-assistant-addon/raw/main/esphome/logo.png
[website]: https://esphome.io/

View File

@@ -0,0 +1,98 @@
---
# When changing options in this file, please also run:
# python3 script/generate.py dev
# to update the dev addon config (beta/stable configs will be updated on next release by release script)
base: &base
url: https://esphome.io/
arch:
- amd64
- armv7
- aarch64
# Uses Home Assistant Supervisor API (auth)
hassio_api: true
auth_api: true
# Host network mode for mDNS
host_network: true
# Ingress settings
ingress: true
ingress_port: 0
panel_icon: 'mdi:chip'
# Automatically add UART devices to add-on
uart: true
ports:
'6052/tcp': null
map:
- ssl:ro
- config:rw
discovery:
- esphome
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
backup_exclude:
- "*/*/"
# Disable docker init for s6
init: false
esphome-dev:
<<: *base
directory: esphome-dev
name: ESPHome (dev)
version: 'dev' # DEV
slug: esphome-dev
description: "Development version of ESPHome add-on"
url: https://next.esphome.io/
stage: experimental
advanced: true
schema:
status_use_ping: bool?
streamer_mode: bool?
home_assistant_dashboard_integration: bool?
default_compile_process_limit: int(1,)?
esphome_fork: str?
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
base_image: ghcr.io/esphome/esphome-hassio:dev
options:
home_assistant_dashboard_integration: false
esphome-beta:
<<: *base
directory: esphome-beta
name: ESPHome (beta)
version: '2023.11.0' # BETA
slug: esphome-beta
description: "Beta version of ESPHome add-on"
url: https://beta.esphome.io/
image: ghcr.io/esphome/esphome-hassio
stage: experimental
advanced: true
options:
home_assistant_dashboard_integration: false
esphome-stable:
<<: *base
directory: esphome
name: ESPHome
version: '2023.11.0' # STABLE
slug: esphome
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
image: ghcr.io/esphome/esphome-hassio
copy_files:
- DOCS.md
- icon.png
- logo.png
- README.md
- translations/en.yaml
- images/dht-example.png
- images/screenshot.png
- images/temperature-humidity.png

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

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

View File

@@ -1,81 +0,0 @@
---
base: &base
url: https://esphome.io/
webui: 'http://[HOST]:[PORT:6052]'
startup: application
boot: auto
arch:
- amd64
- armv7
- aarch64
# Uses Hass.io API (auth)
hassio_api: true
auth_api: true
hassio_role: default
# Doesn't use HA API
homeassistant_api: false
# Host network mode for mDNS
host_network: true
# Ingress settings
ingress: true
ingress_port: 0
panel_icon: 'mdi:chip'
# Automatically add UART devices to addon
auto_uart: true
ports:
'6052/tcp': null
ports_description:
'6052/tcp': "Web interface (Not required for Home Assistant Ingress)"
map:
- ssl:ro
- config:rw
schema:
ssl: bool?
certfile: str?
keyfile: str?
leave_front_door_open: bool?
esphome_version: str?
streamer_mode: bool?
relative_url: str?
status_use_ping: bool?
base_image: esphome/esphome-hassio-base-{arch}:2.5.0
esphome-dev:
<<: *base
directory: esphome-dev
name: ESPHome (dev)
version: 'dev' # DEV
slug: esphome-dev
description: "Development Version! Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files"
url: https://next.esphome.io/
stage: experimental
options:
esphome_version: dev
esphome-beta:
<<: *base
directory: esphome-beta
name: ESPHome (beta)
version: '1.15.2' # BETA
slug: esphome-beta
description: "Beta version of ESPHome Hass.io add-on."
url: https://beta.esphome.io/
image: esphome/esphome-hassio-{arch}
stage: experimental
options: {}
esphome-stable:
<<: *base
directory: esphome
name: ESPHome
version: '1.15.2' # STABLE
slug: esphome
description: "ESPHome Hass.io add-on for intelligently managing all your ESP8266/ESP32 devices."
image: esphome/esphome-hassio-{arch}
stage: stable
options: {}
copy_files:
icon.png:
logo.png:
README.md:

73
template/dev/DOCS.md Normal file
View File

@@ -0,0 +1,73 @@
# ESPHome DEV add on
This is **development** version of the ESPHome add on.
To deploy production nodes please use mainstream release add on.
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
## Configuration
**Note**: _Remember to restart the add-on when the configuration is changed._
### Option: `esphome_fork`
Install ESPHome from a fork or branch.
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
or you can specify the username of the fork owner and branch `username:branch` which
assumes the repository is named `esphome` still.
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**.
## General ESPHome add on configurations
General options also available in other versions.
### Option: `ssl`
Enables or disables encrypted SSL/TLS (HTTPS) connections to the web server of this add-on.
Set it to `true` to encrypt communications, `false` otherwise.
Please note that if you set this to `true` you must also generate the key and certificate
files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/)
or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/).
### Option: `certfile`
The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `keyfile`
The private key file to use for SSL. If this file doesn't exist, the add-on start will fail.
**Note**: The file MUST be stored in `/ssl/`, which is the default for Home Assistant
### Option: `leave_front_door_open`
Adding this option to the add-on configuration allows you to disable
authentication by setting it to `true`.
### Option: `relative_url`
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 `/`.
### Option: `status_use_ping`
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.
Setting this to `true` will make ESPHome use ICMP ping requests to get the node status. Use this if all nodes always have offline status even when they're connected.
### Option: `streamer_mode`
If set to `true`, this will enable 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. Please note that you need to use
the `!secret` tag in your YAML file to also prevent these from showing up
while editing and validating.

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.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 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)