Compare commits
313 Commits
v1.14.0b2
...
2023.2.0b3
10
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
FROM ghcr.io/home-assistant/devcontainer:addons
|
||||
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
python3-pip
|
||||
|
||||
COPY script/requirements.txt /
|
||||
|
||||
RUN pip install -r /requirements.txt
|
||||
36
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"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}"
|
||||
},
|
||||
"extensions": [
|
||||
"timonwong.shellcheck",
|
||||
"esbenp.prettier-vscode"
|
||||
],
|
||||
"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
@@ -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
@@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
59
.github/workflows/bump-version.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
name: Publish Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
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@v3.3.0
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- run: pip install -r script/requirements.txt
|
||||
- run: script/bump-version.py ${{ github.event.inputs.version }}
|
||||
- name: Write Beta changelog
|
||||
run: |
|
||||
cat > esphome-beta/CHANGELOG.md << 'EOF'
|
||||
## ${{ github.event.inputs.version }}
|
||||
|
||||
${{ 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 esphome@nabucasa.com
|
||||
git add .
|
||||
git commit -m "Bump version to ${{ github.event.inputs.version }}"
|
||||
git push
|
||||
COMMIT=$(git rev-parse HEAD)
|
||||
echo "::set-output name=commit_sha::${COMMIT}"
|
||||
- name: Create a Release
|
||||
uses: actions/create-release@v1.1.4
|
||||
continue-on-error: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.event.inputs.version }}
|
||||
release_name: ${{ github.event.inputs.version }}
|
||||
body: ${{ github.event.inputs.content }}
|
||||
prerelease: ${{ contains(github.event.inputs.version, 'b') }}
|
||||
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
||||
41
.github/workflows/devcontainer-build.yaml
vendored
Normal 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@v3.3.0
|
||||
- name: Log in to the GitHub container registry
|
||||
uses: docker/login-action@v2.1.0
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.1.0
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2.2.1
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v3.3.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
@@ -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@v3.3.0
|
||||
- name: 🛠 Setup Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: 🛠 Install dependencies
|
||||
run: pip install -r script/requirements.txt
|
||||
- name: 🛠 Generate files from template
|
||||
run: python script/generate.py ${{ matrix.channels.channel }}
|
||||
- name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }}
|
||||
uses: frenck/action-addon-linter@v2.11.0
|
||||
with:
|
||||
path: "./${{ matrix.channels.folder }}"
|
||||
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
venv/
|
||||
19
.vscode/tasks.json
vendored
Normal 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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://esphome.io/)
|
||||
|
||||
This is the Hass.io addon repository for ESPHome. For the ESPHome source please go to [esphome](https://github.com/esphome/esphome)
|
||||
This is the Home Assistant (former Hass.io) addon repository for ESPHome. For the ESPHome source please go to [esphome](https://github.com/esphome/esphome).
|
||||
|
||||
**Documentation:** https://esphome.io/
|
||||
|
||||
|
||||
107
esphome-beta/CHANGELOG.md
Normal file
@@ -0,0 +1,107 @@
|
||||
## 2023.2.0b3
|
||||
|
||||
- Expose lambda action to reset a cycle in `slow_pwm` [esphome#4158](https://github.com/esphome/esphome/pull/4158) by [@johndbritton](https://github.com/johndbritton)
|
||||
- climate: Add features to generic Toshiba model [esphome#3912](https://github.com/esphome/esphome/pull/3912) by [@zagor](https://github.com/zagor)
|
||||
- Fix UUID displaying incorrectly in BLE Tracker logs [esphome#4187](https://github.com/esphome/esphome/pull/4187) by [@deunlee](https://github.com/deunlee)
|
||||
- Bump actions/stale from 6 to 7 [esphome#4217](https://github.com/esphome/esphome/pull/4217) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Add Pca9554 component [esphome#4192](https://github.com/esphome/esphome/pull/4192) by [@hwstar](https://github.com/hwstar) (new-integration)
|
||||
- Bump aioesphomeapi from 13.0.1 to 13.0.2 [esphome#4188](https://github.com/esphome/esphome/pull/4188) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Bump pytest-asyncio from 0.20.2 to 0.20.3 [esphome#4164](https://github.com/esphome/esphome/pull/4164) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Handle deprecated sdkconfig option [esphome#4204](https://github.com/esphome/esphome/pull/4204) by [@mmakaay](https://github.com/mmakaay)
|
||||
- feat: set a wider range for jpeg quality [esphome#3872](https://github.com/esphome/esphome/pull/3872) by [@sisco0](https://github.com/sisco0)
|
||||
- Bump black from 22.10.0 to 22.12.0 [esphome#4167](https://github.com/esphome/esphome/pull/4167) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Use NAN values for TSL2591 saturation [esphome#3931](https://github.com/esphome/esphome/pull/3931) by [@mdonoughe](https://github.com/mdonoughe) (breaking-change)
|
||||
- Ili9341 8bit indexed mode pt2 [esphome#2502](https://github.com/esphome/esphome/pull/2502) by [@davet2001](https://github.com/davet2001)
|
||||
- Allow ignoring of failed Modbus response CRC [esphome#3930](https://github.com/esphome/esphome/pull/3930) by [@jangrewe](https://github.com/jangrewe)
|
||||
- calc LEDC PWM Resolution with LEDC_TIMER_BIT_MAX [esphome#3820](https://github.com/esphome/esphome/pull/3820) by [@MFlasskamp](https://github.com/MFlasskamp)
|
||||
- Component::set_retry updates [esphome#3305](https://github.com/esphome/esphome/pull/3305) by [@e28eta](https://github.com/e28eta)
|
||||
- Fix race condition in web_server scheduler on ESP32 [esphome#3951](https://github.com/esphome/esphome/pull/3951) by [@tomaszduda23](https://github.com/tomaszduda23)
|
||||
- Fix saving light state for restore modes LIGHT_RESTORE_AND_OFF/ON [esphome#4131](https://github.com/esphome/esphome/pull/4131) by [@myhomeiot](https://github.com/myhomeiot)
|
||||
- Add precipitation device class [esphome#4219](https://github.com/esphome/esphome/pull/4219) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add support for BP5758D LED driver [esphome#4021](https://github.com/esphome/esphome/pull/4021) by [@Cossid](https://github.com/Cossid) (new-integration)
|
||||
- Add support for BP1658CJ LED driver [esphome#4020](https://github.com/esphome/esphome/pull/4020) by [@Cossid](https://github.com/Cossid) (new-integration)
|
||||
- Add support for SM2235 and SM2335 LED drivers [esphome#3924](https://github.com/esphome/esphome/pull/3924) by [@Cossid](https://github.com/Cossid) (new-integration)
|
||||
- Fix broken PULSE_METER [esphome#4199](https://github.com/esphome/esphome/pull/4199) by [@cstaahl](https://github.com/cstaahl)
|
||||
- PCF85063 RTC chip [esphome#3873](https://github.com/esphome/esphome/pull/3873) by [@brogon](https://github.com/brogon) (new-integration)
|
||||
- Add API for dashboard to get boards list by platform [esphome#4168](https://github.com/esphome/esphome/pull/4168) by [@kuba2k2](https://github.com/kuba2k2)
|
||||
- Bump dashboard to 20221231.0 [esphome#4248](https://github.com/esphome/esphome/pull/4248) by [@balloob](https://github.com/balloob)
|
||||
- Bump zeroconf to 0.47.1 [esphome#4268](https://github.com/esphome/esphome/pull/4268) by [@bdraco](https://github.com/bdraco)
|
||||
- Don't match words containing "id" [esphome#4265](https://github.com/esphome/esphome/pull/4265) by [@ssieb](https://github.com/ssieb)
|
||||
- Add support for matrix keypads [esphome#4241](https://github.com/esphome/esphome/pull/4241) by [@ssieb](https://github.com/ssieb) (new-integration)
|
||||
- Fix Template Switch restore_mode support [esphome#4280](https://github.com/esphome/esphome/pull/4280) by [@SharpEdgeMarshall](https://github.com/SharpEdgeMarshall)
|
||||
- Correct decimals in Growatt energy reporting [esphome#4277](https://github.com/esphome/esphome/pull/4277) by [@rfpronk](https://github.com/rfpronk)
|
||||
- Bump pylint from 2.15.8 to 2.15.10 [esphome#4278](https://github.com/esphome/esphome/pull/4278) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Fix frequency limit for MCP9600 [esphome#4276](https://github.com/esphome/esphome/pull/4276) by [@jowgn](https://github.com/jowgn)
|
||||
- fix: json compilation error on rp2040 [esphome#4273](https://github.com/esphome/esphome/pull/4273) by [@kellertk](https://github.com/kellertk)
|
||||
- http_request: add request duration logging [esphome#4272](https://github.com/esphome/esphome/pull/4272) by [@stas-sl](https://github.com/stas-sl)
|
||||
- Fix HttpRequestResponseTrigger [esphome#4270](https://github.com/esphome/esphome/pull/4270) by [@gmbuell](https://github.com/gmbuell)
|
||||
- Fix HttpRequestResponseTrigger again [esphome#4285](https://github.com/esphome/esphome/pull/4285) by [@gmbuell](https://github.com/gmbuell)
|
||||
- Add X9C Potentiometer component [esphome#4183](https://github.com/esphome/esphome/pull/4183) by [@EtienneMD](https://github.com/EtienneMD) (new-integration)
|
||||
- small DisplayBuffer images and font update [esphome#4044](https://github.com/esphome/esphome/pull/4044) by [@nielsnl68](https://github.com/nielsnl68)
|
||||
- Fix use of dangling pointers in esp-idf MQTT backend [esphome#4239](https://github.com/esphome/esphome/pull/4239) by [@aaliddell](https://github.com/aaliddell)
|
||||
- Ensure we never write zero bytes [esphome#4284](https://github.com/esphome/esphome/pull/4284) by [@bdraco](https://github.com/bdraco)
|
||||
- Fix off-by-one bedjet fan speed (#3873) [esphome#4292](https://github.com/esphome/esphome/pull/4292) by [@jhansche](https://github.com/jhansche)
|
||||
- Clean up dashboard ping result post-rename/delete [esphome#4170](https://github.com/esphome/esphome/pull/4170) by [@balloob](https://github.com/balloob)
|
||||
- Calculate PWM wrap dynamically whenever the frequency is changed [esphome#4294](https://github.com/esphome/esphome/pull/4294) by [@tradeJmark](https://github.com/tradeJmark)
|
||||
- Remove baud check in tuya dump_config [esphome#4298](https://github.com/esphome/esphome/pull/4298) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add friendly_name to device [esphome#4296](https://github.com/esphome/esphome/pull/4296) by [@jesserockz](https://github.com/jesserockz)
|
||||
- allow multiple dsmr [esphome#4299](https://github.com/esphome/esphome/pull/4299) by [@ssieb](https://github.com/ssieb)
|
||||
- Bump pytest from 7.2.0 to 7.2.1 [esphome#4300](https://github.com/esphome/esphome/pull/4300) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Bump aioesphomeapi from 13.0.2 to 13.1.0 [esphome#4301](https://github.com/esphome/esphome/pull/4301) by [@dependabot[bot]](https://github.com/apps/dependabot)
|
||||
- Display the configured esphome:comment on the WebServer [esphome#4246](https://github.com/esphome/esphome/pull/4246) by [@grillp](https://github.com/grillp)
|
||||
- Allow 0xA8 ID for APDS9960 [esphome#4287](https://github.com/esphome/esphome/pull/4287) by [@reubn](https://github.com/reubn)
|
||||
- Dont default CORE.friendly_name [esphome#4305](https://github.com/esphome/esphome/pull/4305) by [@jesserockz](https://github.com/jesserockz)
|
||||
- add key collector component [esphome#4242](https://github.com/esphome/esphome/pull/4242) by [@ssieb](https://github.com/ssieb) (new-integration)
|
||||
- Tsl2591 gain publish [esphome#4291](https://github.com/esphome/esphome/pull/4291) by [@z3liff](https://github.com/z3liff)
|
||||
- Add support for EE895 [esphome#3771](https://github.com/esphome/esphome/pull/3771) by [@Stock-M](https://github.com/Stock-M) (new-integration)
|
||||
- Add support for HTE501 [esphome#3772](https://github.com/esphome/esphome/pull/3772) by [@Stock-M](https://github.com/Stock-M) (new-integration)
|
||||
- Add support for TEE501 [esphome#3773](https://github.com/esphome/esphome/pull/3773) by [@Stock-M](https://github.com/Stock-M) (new-integration)
|
||||
- PCA9685, fix reset device and add option EXTCLK [esphome#3845](https://github.com/esphome/esphome/pull/3845) by [@standahabich](https://github.com/standahabich)
|
||||
- Implement a slow sigma-delta modulation based output [esphome#4132](https://github.com/esphome/esphome/pull/4132) by [@Cat-Ion](https://github.com/Cat-Ion) (new-integration)
|
||||
- set_retry: add retries remaining parameter to the provided function [esphome#4251](https://github.com/esphome/esphome/pull/4251) by [@e28eta](https://github.com/e28eta) (breaking-change)
|
||||
- add Wiegand reader component [esphome#4288](https://github.com/esphome/esphome/pull/4288) by [@ssieb](https://github.com/ssieb) (new-integration)
|
||||
- Format docker/build.py [esphome#4313](https://github.com/esphome/esphome/pull/4313) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add macro for sub sensor defining [esphome#4315](https://github.com/esphome/esphome/pull/4315) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add friendly name in MDNS records if it is not empty [esphome#4317](https://github.com/esphome/esphome/pull/4317) by [@catalin2402](https://github.com/catalin2402)
|
||||
- Add upload dashboard api [esphome#4318](https://github.com/esphome/esphome/pull/4318) by [@balloob](https://github.com/balloob)
|
||||
- Bump esphome-dashboard to 20230120.0 [esphome#4319](https://github.com/esphome/esphome/pull/4319) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Hydreon: Use new device classes water and precipitation_intensity [esphome#3993](https://github.com/esphome/esphome/pull/3993) by [@functionpointer](https://github.com/functionpointer)
|
||||
- Dont fail workflows if lint building fails [esphome#4336](https://github.com/esphome/esphome/pull/4336) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add MICS-4514 gas sensor [esphome#4316](https://github.com/esphome/esphome/pull/4316) by [@jesserockz](https://github.com/jesserockz) (new-integration)
|
||||
- Refactor esp32_ble_tracker to use esp32_ble core ble setup code [esphome#4173](https://github.com/esphome/esphome/pull/4173) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add next_url to improv serial component config [esphome#4343](https://github.com/esphome/esphome/pull/4343) by [@jesserockz](https://github.com/jesserockz) (new-integration)
|
||||
- Remove state class from uptime sensor [esphome#4345](https://github.com/esphome/esphome/pull/4345) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix esp32_ble_tracker setup priority [esphome#4346](https://github.com/esphome/esphome/pull/4346) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix in ble client base address parsing [esphome#4347](https://github.com/esphome/esphome/pull/4347) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Added support for ADS1015 [esphome#4281](https://github.com/esphome/esphome/pull/4281) by [@xvil](https://github.com/xvil)
|
||||
- Fix "BLE server / advertising always on" [esphome#4353](https://github.com/esphome/esphome/pull/4353) by [@Mat931](https://github.com/Mat931)
|
||||
- Dump full parsed config to json-config api call [esphome#4373](https://github.com/esphome/esphome/pull/4373) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix pressure compensation in SCD4X [esphome#4357](https://github.com/esphome/esphome/pull/4357) by [@CarlosGS](https://github.com/CarlosGS)
|
||||
- Allow mdns services to be exposed by config [esphome#4202](https://github.com/esphome/esphome/pull/4202) by [@elupus](https://github.com/elupus)
|
||||
- Allow final validate of uart stop bits and parity [esphome#4376](https://github.com/esphome/esphome/pull/4376) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Update sim800l.cpp [esphome#4223](https://github.com/esphome/esphome/pull/4223) by [@fbeek](https://github.com/fbeek)
|
||||
- SCD30 Added support for manual calibration [esphome#4362](https://github.com/esphome/esphome/pull/4362) by [@ftrueck](https://github.com/ftrueck)
|
||||
- Add Ld2410 Support [esphome#3919](https://github.com/esphome/esphome/pull/3919) by [@sebcaps](https://github.com/sebcaps) (new-integration)
|
||||
- add Resol VBus support [esphome#3976](https://github.com/esphome/esphome/pull/3976) by [@ssieb](https://github.com/ssieb) (new-integration)
|
||||
- Allow dashboard import to specify if api encryption key should be generated [esphome#4393](https://github.com/esphome/esphome/pull/4393) by [@jesserockz](https://github.com/jesserockz)
|
||||
- modify SGP4X integration to report device_class as air quality index [esphome#4327](https://github.com/esphome/esphome/pull/4327) by [@alexd321](https://github.com/alexd321)
|
||||
- Remove unneeded validation for esp32 gpio pins [esphome#4394](https://github.com/esphome/esphome/pull/4394) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix shelly dimmer current sensor device class [esphome#4385](https://github.com/esphome/esphome/pull/4385) by [@trvrnrth](https://github.com/trvrnrth)
|
||||
- Added Ethernet Component for ESP IDF with JL1101 PHY driver [esphome#4009](https://github.com/esphome/esphome/pull/4009) by [@mobrembski](https://github.com/mobrembski)
|
||||
- adds gpio INPUT_OUTPUT_OPEN_DRAIN [esphome#4360](https://github.com/esphome/esphome/pull/4360) by [@tomaszduda23](https://github.com/tomaszduda23)
|
||||
- Merge components in packages [esphome#3555](https://github.com/esphome/esphome/pull/3555) by [@quentinmit](https://github.com/quentinmit)
|
||||
- Update ld2410 logging [esphome#4395](https://github.com/esphome/esphome/pull/4395) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Update log for mics4514 to state 3 minute start time. [esphome#4396](https://github.com/esphome/esphome/pull/4396) by [@jesserockz](https://github.com/jesserockz)
|
||||
- mDNS updates [esphome#4399](https://github.com/esphome/esphome/pull/4399) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Dont keep logging on improv start [esphome#4401](https://github.com/esphome/esphome/pull/4401) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Add support for Lippert LP sensors in mopeka_pro_check component [esphome#4118](https://github.com/esphome/esphome/pull/4118) by [@rperciaccante](https://github.com/rperciaccante)
|
||||
- climate: add support for quiet fan mode [esphome#3609](https://github.com/esphome/esphome/pull/3609) by [@MichaelMure](https://github.com/MichaelMure)
|
||||
- add MQTT preset support for Climate components [esphome#4379](https://github.com/esphome/esphome/pull/4379) by [@jmichiel](https://github.com/jmichiel)
|
||||
- Added CanalSat and CanalSatLD protocol support [esphome#3513](https://github.com/esphome/esphome/pull/3513) by [@Emrvb](https://github.com/Emrvb)
|
||||
- Remove unused manifest handler [esphome#4169](https://github.com/esphome/esphome/pull/4169) by [@balloob](https://github.com/balloob)
|
||||
- Use the github-script action to call the workflow [esphome#4400](https://github.com/esphome/esphome/pull/4400) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Convert secrets constant to a tuple [esphome#4245](https://github.com/esphome/esphome/pull/4245) by [@balloob](https://github.com/balloob)
|
||||
- Verify rel_path output is relative [esphome#4247](https://github.com/esphome/esphome/pull/4247) by [@balloob](https://github.com/balloob)
|
||||
- Bump curl version in docker [esphome#4403](https://github.com/esphome/esphome/pull/4403) by [@jesserockz](https://github.com/jesserockz)
|
||||
- Fix release workflow [esphome#4405](https://github.com/esphome/esphome/pull/4405) by [@jesserockz](https://github.com/jesserockz)
|
||||
|
||||
72
esphome-beta/DOCS.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Home Assistant Community Add-on: ESPHome
|
||||
|
||||
## 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.
|
||||
1
esphome-beta/FILES ARE GENERATED DO NOT EDIT
Normal file
@@ -0,0 +1 @@
|
||||
Any edits should be made to the files in the 'template' directory
|
||||
@@ -1,6 +1,6 @@
|
||||
# ESPHome Hass.io Add-On
|
||||
# ESPHome Home Assistant Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[](https://esphome.io/)
|
||||
|
||||
[](https://github.com/esphome/esphome)
|
||||
[![GitHub Release][releases-shield]][releases]
|
||||
@@ -9,15 +9,15 @@
|
||||
## About
|
||||
|
||||
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
|
||||
directly through Hass.io **with no programming experience required**. All you need to do
|
||||
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://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
</p>
|
||||
|
||||
[_View the ESPHome documentation here_](https://esphome.io/)
|
||||
[View the ESPHome documentation](https://esphome.io/)
|
||||
|
||||
## Example
|
||||
|
||||
@@ -26,93 +26,11 @@ 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://raw.githubusercontent.com/esphome/hassio/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>
|
||||
|
||||
## Installation
|
||||
|
||||
To install this Hass.io add-on you need to add the ESPHome add-on repository
|
||||
first:
|
||||
|
||||
1. Add the epshomeyaml add-ons repository to your Hass.io instance. You can do this by navigating to the "Add-on Store" tab in the Hass.io panel and then entering https://github.com/esphome/hassio in the "Add new repository by URL" field.
|
||||
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 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 Hass.io's authentication system to log you in.
|
||||
|
||||
You can view the ESPHome docs here: 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/Disables encrypted SSL (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 Hass.io
|
||||
|
||||
### 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 Hass.io
|
||||
|
||||
### 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 addon.
|
||||
For example to install the latest development version, use `"esphome_version": "dev"`,
|
||||
or for version 1.10.0: `"esphome_version": "v1.10.0""`.
|
||||
|
||||
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 proxys 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.
|
||||
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
|
||||
|
||||
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
|
||||
[dht22]: https://esphome.io/components/sensor/dht.html
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
"arch": [
|
||||
"amd64",
|
||||
"i386",
|
||||
"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 Hass.io 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",
|
||||
"startup": "application",
|
||||
"url": "https://beta.esphome.io/",
|
||||
"version": "1.14.0b2",
|
||||
"webui": "http://[HOST]:[PORT:6052]"
|
||||
}
|
||||
42
esphome-beta/config.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
url: https://beta.esphome.io/
|
||||
arch:
|
||||
- amd64
|
||||
- armv7
|
||||
- aarch64
|
||||
hassio_api: true
|
||||
auth_api: true
|
||||
host_network: true
|
||||
ingress: true
|
||||
ingress_port: 0
|
||||
panel_icon: mdi:chip
|
||||
uart: true
|
||||
ports:
|
||||
6052/tcp: null
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
discovery:
|
||||
- esphome
|
||||
schema:
|
||||
status_use_ping: bool?
|
||||
streamer_mode: bool?
|
||||
home_assistant_dashboard_integration: bool?
|
||||
default_compile_process_limit: int(1,)?
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- '*/*/'
|
||||
init: false
|
||||
name: ESPHome (beta)
|
||||
version: 2023.2.0b3
|
||||
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
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
67
esphome-beta/translations/en.yaml
Normal 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
@@ -0,0 +1 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
73
esphome-dev/DOCS.md
Normal 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.
|
||||
@@ -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
|
||||
|
||||
1
esphome-dev/FILES ARE GENERATED DO NOT EDIT
Normal file
@@ -0,0 +1 @@
|
||||
Any edits should be made to the files in the 'template' directory
|
||||
@@ -1,6 +1,6 @@
|
||||
# ESPHome Hass.io Add-On
|
||||
# ESPHome Home Assistant Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[](https://esphome.io/)
|
||||
|
||||
[](https://github.com/esphome/esphome)
|
||||
[![GitHub Release][releases-shield]][releases]
|
||||
@@ -9,15 +9,15 @@
|
||||
## About
|
||||
|
||||
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
|
||||
directly through Hass.io **with no programming experience required**. All you need to do
|
||||
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://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
</p>
|
||||
|
||||
[_View the ESPHome documentation here_](https://esphome.io/)
|
||||
[View the ESPHome documentation](https://esphome.io/)
|
||||
|
||||
## Example
|
||||
|
||||
@@ -26,93 +26,11 @@ 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://raw.githubusercontent.com/esphome/hassio/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>
|
||||
|
||||
## Installation
|
||||
|
||||
To install this Hass.io add-on you need to add the ESPHome add-on repository
|
||||
first:
|
||||
|
||||
1. Add the epshomeyaml add-ons repository to your Hass.io instance. You can do this by navigating to the "Add-on Store" tab in the Hass.io panel and then entering https://github.com/esphome/hassio in the "Add new repository by URL" field.
|
||||
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 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 Hass.io's authentication system to log you in.
|
||||
|
||||
You can view the ESPHome docs here: 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/Disables encrypted SSL (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 Hass.io
|
||||
|
||||
### 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 Hass.io
|
||||
|
||||
### 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 addon.
|
||||
For example to install the latest development version, use `"esphome_version": "dev"`,
|
||||
or for version 1.10.0: `"esphome_version": "v1.10.0""`.
|
||||
|
||||
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 proxys 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.
|
||||
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
|
||||
|
||||
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
|
||||
[dht22]: https://esphome.io/components/sensor/dht.html
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"args": {},
|
||||
"build_from": {
|
||||
"aarch64": "esphome/esphome-hassio-base-aarch64:2.0.0",
|
||||
"amd64": "esphome/esphome-hassio-base-amd64:2.0.0",
|
||||
"armv7": "esphome/esphome-hassio-base-armv7:2.0.0",
|
||||
"i386": "esphome/esphome-hassio-base-i386:2.0.0"
|
||||
},
|
||||
"squash": false
|
||||
}
|
||||
5
esphome-dev/build.yaml
Normal 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
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
"arch": [
|
||||
"amd64",
|
||||
"i386",
|
||||
"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 Hass.io 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",
|
||||
"startup": "application",
|
||||
"url": "https://next.esphome.io/",
|
||||
"version": "dev",
|
||||
"webui": "http://[HOST]:[PORT:6052]"
|
||||
}
|
||||
42
esphome-dev/config.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
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?
|
||||
relative_url: 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
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
@@ -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
|
||||
@@ -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
|
||||
47
esphome-dev/rootfs/etc/cont-init.d/30-esphome-fork.sh
Executable 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
|
||||
@@ -1,15 +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')
|
||||
full_url="https://github.com/esphome/esphome/archive/${esphome_version}.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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 "";
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
67
esphome-dev/translations/en.yaml
Normal 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)
|
||||
7
esphome/CHANGELOG.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## 2022.12.8
|
||||
|
||||
- Upgrades add-on base image to 6.2.0 [esphome#4310](https://github.com/esphome/esphome/pull/4310) by [@frenck](https://github.com/frenck)
|
||||
- Migrate old-style S6 scripts to s6-rc.d [esphome#4311](https://github.com/esphome/esphome/pull/4311) by [@frenck](https://github.com/frenck)
|
||||
- Refactor NGINX configuration of Home Assistant Add-on [esphome#4312](https://github.com/esphome/esphome/pull/4312) by [@frenck](https://github.com/frenck)
|
||||
- Add Home Assistant integration discovery [esphome#4328](https://github.com/esphome/esphome/pull/4328) by [@frenck](https://github.com/frenck)
|
||||
|
||||
72
esphome/DOCS.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Home Assistant Community Add-on: ESPHome
|
||||
|
||||
## 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.
|
||||
1
esphome/FILES ARE GENERATED DO NOT EDIT
Normal file
@@ -0,0 +1 @@
|
||||
Any edits should be made to the files in the 'template' directory
|
||||
@@ -1,6 +1,6 @@
|
||||
# ESPHome Hass.io Add-On
|
||||
# ESPHome Home Assistant Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[](https://esphome.io/)
|
||||
|
||||
[](https://github.com/esphome/esphome)
|
||||
[![GitHub Release][releases-shield]][releases]
|
||||
@@ -9,15 +9,15 @@
|
||||
## About
|
||||
|
||||
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
|
||||
directly through Hass.io **with no programming experience required**. All you need to do
|
||||
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://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
</p>
|
||||
|
||||
[_View the ESPHome documentation here_](https://esphome.io/)
|
||||
[View the ESPHome documentation](https://esphome.io/)
|
||||
|
||||
## Example
|
||||
|
||||
@@ -26,93 +26,11 @@ 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://raw.githubusercontent.com/esphome/hassio/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>
|
||||
|
||||
## Installation
|
||||
|
||||
To install this Hass.io add-on you need to add the ESPHome add-on repository
|
||||
first:
|
||||
|
||||
1. Add the epshomeyaml add-ons repository to your Hass.io instance. You can do this by navigating to the "Add-on Store" tab in the Hass.io panel and then entering https://github.com/esphome/hassio in the "Add new repository by URL" field.
|
||||
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 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 Hass.io's authentication system to log you in.
|
||||
|
||||
You can view the ESPHome docs here: 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/Disables encrypted SSL (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 Hass.io
|
||||
|
||||
### 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 Hass.io
|
||||
|
||||
### 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 addon.
|
||||
For example to install the latest development version, use `"esphome_version": "dev"`,
|
||||
or for version 1.10.0: `"esphome_version": "v1.10.0""`.
|
||||
|
||||
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 proxys 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.
|
||||
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
|
||||
|
||||
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
|
||||
[dht22]: https://esphome.io/components/sensor/dht.html
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
"arch": [
|
||||
"amd64",
|
||||
"i386",
|
||||
"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 Hass.io 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",
|
||||
"startup": "application",
|
||||
"url": "https://esphome.io/",
|
||||
"version": "1.13.6",
|
||||
"webui": "http://[HOST]:[PORT:6052]"
|
||||
}
|
||||
38
esphome/config.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
url: https://esphome.io/
|
||||
arch:
|
||||
- amd64
|
||||
- armv7
|
||||
- aarch64
|
||||
hassio_api: true
|
||||
auth_api: true
|
||||
host_network: true
|
||||
ingress: true
|
||||
ingress_port: 0
|
||||
panel_icon: mdi:chip
|
||||
uart: true
|
||||
ports:
|
||||
6052/tcp: null
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
discovery:
|
||||
- esphome
|
||||
schema:
|
||||
status_use_ping: bool?
|
||||
streamer_mode: bool?
|
||||
home_assistant_dashboard_integration: bool?
|
||||
default_compile_process_limit: int(1,)?
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
relative_url: str?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- '*/*/'
|
||||
init: false
|
||||
name: ESPHome
|
||||
version: 2022.12.8
|
||||
slug: esphome
|
||||
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
BIN
esphome/icon.png
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
esphome/logo.png
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
67
esphome/translations/en.yaml
Normal 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,5 +1,5 @@
|
||||
{
|
||||
"name": "ESPHome Hass.io Add-Ons",
|
||||
"url": "https://github.com/esphome/hassio",
|
||||
"maintainer": "ESPHome <contact@esphome.io>"
|
||||
"name": "ESPHome",
|
||||
"url": "https://esphome.io",
|
||||
"maintainer": "ESPHome <esphome@nabucasa.com>"
|
||||
}
|
||||
|
||||
24
script/NOTES.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Maintainer notes
|
||||
|
||||
This repository is pulled by all Hassio installs and contains
|
||||
the Hassio config for each type of install: latest, beta and dev.
|
||||
|
||||
- `latest` always points to the most recent full release.
|
||||
- `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/addon_config.yaml` file.
|
||||
|
||||
To update one of the images: use
|
||||
|
||||
```bash
|
||||
$ pip3 install -r script/requirements.txt
|
||||
$ python3 script/generate.py [dev|beta|latest]
|
||||
```
|
||||
|
||||
The `esphome-dev/rootfs` folder is shared with the `docker/rootfs` folder in the esphome repo.
|
||||
This could be solved better, but currently `rsync` is used to copy the files over:
|
||||
|
||||
```bash
|
||||
rsync -av ../esphome/docker/rootfs esphome-dev/
|
||||
```
|
||||
90
script/bump-version.py
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import re
|
||||
import subprocess
|
||||
from dataclasses import dataclass
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.append(os.path.dirname(__file__))
|
||||
import generate
|
||||
|
||||
|
||||
@dataclass
|
||||
class Version:
|
||||
major: int
|
||||
minor: int
|
||||
patch: int
|
||||
beta: int = 0
|
||||
dev: bool = False
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.major}.{self.minor}.{self.full_patch}'
|
||||
|
||||
@property
|
||||
def full_patch(self):
|
||||
res = f'{self.patch}'
|
||||
if self.beta > 0:
|
||||
res += f'b{self.beta}'
|
||||
if self.dev:
|
||||
res += '-dev'
|
||||
return res
|
||||
|
||||
@classmethod
|
||||
def parse(cls, value):
|
||||
match = re.match(r'(\d+).(\d+).(\d+)(b\d+)?(-dev)?', value)
|
||||
assert match is not None
|
||||
major = int(match[1])
|
||||
minor = int(match[2])
|
||||
patch = int(match[3])
|
||||
beta = int(match[4][1:]) if match[4] else 0
|
||||
dev = bool(match[5])
|
||||
return Version(
|
||||
major=major, minor=minor, patch=patch,
|
||||
beta=beta, dev=dev
|
||||
)
|
||||
|
||||
|
||||
def sub(path, pattern, repl, expected_count=1):
|
||||
with open(path) as fh:
|
||||
content = fh.read()
|
||||
content, count = re.subn(pattern, repl, content, flags=re.MULTILINE)
|
||||
if expected_count is not None:
|
||||
assert count == expected_count, f"Pattern {pattern} replacement failed!"
|
||||
with open(path, "wt") as fh:
|
||||
fh.write(content)
|
||||
|
||||
|
||||
def write_version(target: str, version: Version):
|
||||
# version: '1.14.5' # BETA
|
||||
# version: '1.14.5' # STABLE
|
||||
sub(
|
||||
'template/addon_config.yaml',
|
||||
r" version: '[^']+' # {}".format(target.upper()),
|
||||
f" version: '{version}' # {target.upper()}"
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('new_version', type=str)
|
||||
args = parser.parse_args()
|
||||
|
||||
version = Version.parse(args.new_version)
|
||||
assert not version.dev
|
||||
|
||||
print(f"Bumping to {version}")
|
||||
if version.beta:
|
||||
write_version('beta', version)
|
||||
generate.main(['beta'])
|
||||
else:
|
||||
assert not version.beta
|
||||
write_version('stable', version)
|
||||
write_version('beta', version)
|
||||
generate.main(['stable', 'beta'])
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main() or 0)
|
||||
@@ -4,45 +4,59 @@ import argparse
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
from enum import Enum
|
||||
import json
|
||||
from shutil import copyfile
|
||||
import sys
|
||||
|
||||
|
||||
class Channel(Enum):
|
||||
stable = 'stable'
|
||||
beta = 'beta'
|
||||
dev = 'dev'
|
||||
stable = "stable"
|
||||
beta = "beta"
|
||||
dev = "dev"
|
||||
|
||||
parser = argparse.ArgumentParser(description='Generate ESPHome Hass.io config.json')
|
||||
parser.add_argument('channels', nargs='+', type=Channel, choices=list(Channel))
|
||||
args = parser.parse_args()
|
||||
|
||||
root = Path(__file__).parent.parent
|
||||
templ = root / 'template'
|
||||
def main(args):
|
||||
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)
|
||||
|
||||
with open(templ / "config.yaml", 'r') as f:
|
||||
config = yaml.safe_load(f)
|
||||
root = Path(__file__).parent.parent
|
||||
templ = root / "template"
|
||||
|
||||
copyf = config['copy_files']
|
||||
with open(templ / "addon_config.yaml", "r") as f:
|
||||
config = yaml.safe_load(f)
|
||||
|
||||
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)
|
||||
copyf = config["copy_files"]
|
||||
|
||||
for file_, conf_ in copyf.items():
|
||||
copyfile(templ / file_, dir_ / file_)
|
||||
for channel in args.channels:
|
||||
conf = config[f"esphome-{channel.value}"]
|
||||
base_image = conf.pop("base_image", None)
|
||||
dir_ = root / conf.pop("directory")
|
||||
path = dir_ / "config.yaml"
|
||||
with open(path, "w") as f:
|
||||
yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True)
|
||||
|
||||
if channel == Channel.dev:
|
||||
path = dir_ / 'build.json'
|
||||
build_conf = {
|
||||
'squash': False,
|
||||
"build_from": {arch: base_image.format(arch=arch) for arch in conf['arch']},
|
||||
"args": {}
|
||||
}
|
||||
with open(path, 'w') as f:
|
||||
json.dump(build_conf, f, indent=2, sort_keys=True)
|
||||
for file_, conf_ in copyf.items():
|
||||
if Path.exists(templ / channel.value / file_):
|
||||
copyfile(templ / channel.value / file_, dir_ / file_)
|
||||
else:
|
||||
copyfile(templ / file_, dir_ / file_)
|
||||
|
||||
print(f"Wrote {path}")
|
||||
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.yaml"
|
||||
build_conf = {
|
||||
"build_from": {
|
||||
arch: base_image for arch in conf["arch"]
|
||||
}
|
||||
}
|
||||
with open(path, "w") as f:
|
||||
yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
||||
|
||||
1
script/requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
PyYAML==6.0
|
||||
1
template/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
72
template/DOCS.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Home Assistant Community Add-on: ESPHome
|
||||
|
||||
## 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.
|
||||
@@ -1,6 +1,6 @@
|
||||
# ESPHome Hass.io Add-On
|
||||
# ESPHome Home Assistant Add-On
|
||||
|
||||
[](https://esphome.io/)
|
||||
[](https://esphome.io/)
|
||||
|
||||
[](https://github.com/esphome/esphome)
|
||||
[![GitHub Release][releases-shield]][releases]
|
||||
@@ -9,15 +9,15 @@
|
||||
## About
|
||||
|
||||
This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers
|
||||
directly through Hass.io **with no programming experience required**. All you need to do
|
||||
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://raw.githubusercontent.com/esphome/hassio/master/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
<img title="ESPHome dashboard screenshot" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/screenshot.png" width="700px"></img>
|
||||
</p>
|
||||
|
||||
[_View the ESPHome documentation here_](https://esphome.io/)
|
||||
[View the ESPHome documentation](https://esphome.io/)
|
||||
|
||||
## Example
|
||||
|
||||
@@ -26,93 +26,11 @@ 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://raw.githubusercontent.com/esphome/hassio/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>
|
||||
|
||||
## Installation
|
||||
|
||||
To install this Hass.io add-on you need to add the ESPHome add-on repository
|
||||
first:
|
||||
|
||||
1. Add the epshomeyaml add-ons repository to your Hass.io instance. You can do this by navigating to the "Add-on Store" tab in the Hass.io panel and then entering https://github.com/esphome/hassio in the "Add new repository by URL" field.
|
||||
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 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 Hass.io's authentication system to log you in.
|
||||
|
||||
You can view the ESPHome docs here: 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/Disables encrypted SSL (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 Hass.io
|
||||
|
||||
### 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 Hass.io
|
||||
|
||||
### 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 addon.
|
||||
For example to install the latest development version, use `"esphome_version": "dev"`,
|
||||
or for version 1.10.0: `"esphome_version": "v1.10.0""`.
|
||||
|
||||
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 proxys 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.
|
||||
<img title="ESPHome Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/esphome/hassio/main/esphome-dev/images/temperature-humidity.png" width="600px"></img>
|
||||
|
||||
[discord-shield]: https://img.shields.io/discord/429907082951524364.svg
|
||||
[dht22]: https://esphome.io/components/sensor/dht.html
|
||||
|
||||
98
template/addon_config.yaml
Normal 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?
|
||||
relative_url: 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?
|
||||
relative_url: 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.2.0b3' # 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: '2022.12.8' # STABLE
|
||||
slug: esphome
|
||||
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
|
||||
copy_files:
|
||||
CHANGELOG.md:
|
||||
DOCS.md:
|
||||
icon.png:
|
||||
logo.png:
|
||||
README.md:
|
||||
translations/en.yaml:
|
||||
@@ -1,79 +0,0 @@
|
||||
---
|
||||
base: &base
|
||||
url: https://esphome.io/
|
||||
webui: 'http://[HOST]:[PORT:6052]'
|
||||
startup: application
|
||||
boot: auto
|
||||
arch:
|
||||
- amd64
|
||||
- i386
|
||||
- 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 Hass.io 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.0.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/
|
||||
options:
|
||||
esphome_version: dev
|
||||
|
||||
esphome-beta:
|
||||
<<: *base
|
||||
directory: esphome-beta
|
||||
name: ESPHome (beta)
|
||||
version: '1.14.0b2' # BETA
|
||||
slug: esphome-beta
|
||||
description: "Beta version of ESPHome Hass.io add-on."
|
||||
url: https://beta.esphome.io/
|
||||
image: esphome/esphome-hassio-{arch}
|
||||
options: {}
|
||||
|
||||
esphome-stable:
|
||||
<<: *base
|
||||
directory: esphome
|
||||
name: ESPHome
|
||||
version: '1.13.6' # STABLE
|
||||
slug: esphome
|
||||
description: "ESPHome Hass.io add-on for intelligently managing all your ESP8266/ESP32 devices."
|
||||
image: esphome/esphome-hassio-{arch}
|
||||
options: {}
|
||||
|
||||
copy_files:
|
||||
icon.png:
|
||||
logo.png:
|
||||
README.md:
|
||||
73
template/dev/DOCS.md
Normal 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.
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
67
template/translations/en.yaml
Normal 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)
|
||||