Compare commits
83 Commits
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
|
||||||
|
}
|
||||||
|
}
|
||||||
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
|
||||||
8
.github/workflows/bump-version.yml
vendored
@@ -12,8 +12,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3.3.0
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- run: pip install -r script/requirements.txt
|
- run: pip install -r script/requirements.txt
|
||||||
@@ -30,7 +30,7 @@ jobs:
|
|||||||
echo "::set-output name=commit_sha::${COMMIT}"
|
echo "::set-output name=commit_sha::${COMMIT}"
|
||||||
- if: ${{ contains(github.event.inputs.version, 'b') }}
|
- if: ${{ contains(github.event.inputs.version, 'b') }}
|
||||||
name: Create Beta Release
|
name: Create Beta Release
|
||||||
uses: actions/create-release@v1
|
uses: actions/create-release@v1.1.4
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
||||||
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||||
name: Create Stable Release
|
name: Create Stable Release
|
||||||
uses: actions/create-release@v1
|
uses: actions/create-release@v1.1.4
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
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
|
||||||
6
.github/workflows/lint.yml
vendored
@@ -19,9 +19,9 @@ jobs:
|
|||||||
channel: dev
|
channel: dev
|
||||||
steps:
|
steps:
|
||||||
- name: ⤵️ Check out code from GitHub
|
- name: ⤵️ Check out code from GitHub
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3.3.0
|
||||||
- name: 🛠 Setup Python
|
- name: 🛠 Setup Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: 🛠 Install dependencies
|
- name: 🛠 Install dependencies
|
||||||
@@ -29,6 +29,6 @@ jobs:
|
|||||||
- name: 🛠 Generate files from template
|
- name: 🛠 Generate files from template
|
||||||
run: python script/generate.py ${{ matrix.channels.channel }}
|
run: python script/generate.py ${{ matrix.channels.channel }}
|
||||||
- name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }}
|
- name: 🚀 Run Home Assistant Add-on Lint on ${{ matrix.channels.channel }}
|
||||||
uses: frenck/action-addon-linter@v2
|
uses: frenck/action-addon-linter@v2.11.0
|
||||||
with:
|
with:
|
||||||
path: "./${{ matrix.channels.folder }}"
|
path: "./${{ matrix.channels.folder }}"
|
||||||
|
|||||||
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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,37 +1,37 @@
|
|||||||
---
|
---
|
||||||
advanced: true
|
url: https://beta.esphome.io/
|
||||||
arch:
|
arch:
|
||||||
- amd64
|
- amd64
|
||||||
- armv7
|
- armv7
|
||||||
- aarch64
|
- aarch64
|
||||||
auth_api: true
|
|
||||||
backup_exclude:
|
|
||||||
- '*/*/'
|
|
||||||
description: Beta version of ESPHome add-on
|
|
||||||
hassio_api: true
|
hassio_api: true
|
||||||
|
auth_api: true
|
||||||
host_network: true
|
host_network: true
|
||||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
|
||||||
ingress: true
|
ingress: true
|
||||||
ingress_port: 0
|
ingress_port: 0
|
||||||
|
panel_icon: mdi:chip
|
||||||
|
uart: true
|
||||||
|
ports:
|
||||||
|
6052/tcp: null
|
||||||
map:
|
map:
|
||||||
- ssl:ro
|
- ssl:ro
|
||||||
- config:rw
|
- config:rw
|
||||||
name: ESPHome (beta)
|
|
||||||
panel_icon: mdi:chip
|
|
||||||
ports:
|
|
||||||
6052/tcp: null
|
|
||||||
ports_description:
|
|
||||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
|
||||||
schema:
|
schema:
|
||||||
certfile: str?
|
|
||||||
keyfile: str?
|
|
||||||
leave_front_door_open: bool?
|
|
||||||
relative_url: str?
|
|
||||||
ssl: bool?
|
|
||||||
status_use_ping: bool?
|
status_use_ping: bool?
|
||||||
streamer_mode: bool?
|
streamer_mode: bool?
|
||||||
|
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: 2022.12.6
|
||||||
slug: esphome-beta
|
slug: esphome-beta
|
||||||
|
description: Beta version of ESPHome add-on
|
||||||
|
image: ghcr.io/esphome/esphome-hassio
|
||||||
stage: experimental
|
stage: experimental
|
||||||
uart: true
|
advanced: true
|
||||||
url: https://beta.esphome.io/
|
|
||||||
version: 2022.3.2
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
60
esphome-beta/translations/en.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
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**.
|
||||||
|
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,40 +1,31 @@
|
|||||||
# Home Assistant Community Add-on: ESPHome
|
# ESPHome DEV add on
|
||||||
|
|
||||||
## Installation
|
This is **development** version of the ESPHome add on.
|
||||||
|
|
||||||
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.
|
To deploy production nodes please use mainstream release add on.
|
||||||
|
|
||||||
1. Search for the “ESPHome” add-on in the Supervisor add-on store.
|
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
|
||||||
2. Press install to download the add-on and unpack it on your machine. This can take some time.
|
|
||||||
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
|
|
||||||
4. Start the add-on, check the logs of the add-on to see if everything went well.
|
|
||||||
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
|
|
||||||
|
|
||||||
You can view the ESPHome documentation at https://esphome.io/
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
**Note**: _Remember to restart the add-on when the configuration is changed._
|
**Note**: _Remember to restart the add-on when the configuration is changed._
|
||||||
|
|
||||||
Example add-on configuration:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"ssl": false,
|
|
||||||
"certfile": "fullchain.pem",
|
|
||||||
"keyfile": "privkey.pem"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Option: `esphome_fork`
|
### Option: `esphome_fork`
|
||||||
|
|
||||||
Install ESPHome from a fork or branch.
|
Install ESPHome from a fork or branch.
|
||||||
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
|
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
|
||||||
or you can specify the username of the fork owner and branch `username:branch` which
|
or you can specify the username of the fork owner and branch `username:branch` which
|
||||||
assumes the repository is named `esphome` still.
|
assumes the repository is named `esphome` still.
|
||||||
|
|
||||||
|
If you need to test the latest commit on dev branch before the image is updated you can enter `dev` here.
|
||||||
|
|
||||||
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
|
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
|
||||||
or the add-on **will not start**.
|
or the add-on **will not start**.
|
||||||
|
|
||||||
|
|
||||||
|
## General ESPHome add on configurations
|
||||||
|
|
||||||
|
General options also available in other versions.
|
||||||
|
|
||||||
### Option: `ssl`
|
### Option: `ssl`
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
build_from:
|
build_from:
|
||||||
aarch64: ghcr.io/esphome/esphome-hassio-aarch64:dev
|
aarch64: ghcr.io/esphome/esphome-hassio:dev
|
||||||
amd64: ghcr.io/esphome/esphome-hassio-amd64:dev
|
amd64: ghcr.io/esphome/esphome-hassio:dev
|
||||||
armv7: ghcr.io/esphome/esphome-hassio-armv7:dev
|
armv7: ghcr.io/esphome/esphome-hassio:dev
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
---
|
---
|
||||||
advanced: true
|
url: https://next.esphome.io/
|
||||||
arch:
|
arch:
|
||||||
- amd64
|
- amd64
|
||||||
- armv7
|
- armv7
|
||||||
- aarch64
|
- aarch64
|
||||||
auth_api: true
|
|
||||||
backup_exclude:
|
|
||||||
- '*/*/'
|
|
||||||
description: Development version of ESPHome add-on
|
|
||||||
hassio_api: true
|
hassio_api: true
|
||||||
|
auth_api: true
|
||||||
host_network: true
|
host_network: true
|
||||||
ingress: true
|
ingress: true
|
||||||
ingress_port: 0
|
ingress_port: 0
|
||||||
|
panel_icon: mdi:chip
|
||||||
|
uart: true
|
||||||
|
ports:
|
||||||
|
6052/tcp: null
|
||||||
map:
|
map:
|
||||||
- ssl:ro
|
- ssl:ro
|
||||||
- config:rw
|
- config:rw
|
||||||
name: ESPHome (dev)
|
|
||||||
panel_icon: mdi:chip
|
|
||||||
ports:
|
|
||||||
6052/tcp: null
|
|
||||||
ports_description:
|
|
||||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
|
||||||
schema:
|
schema:
|
||||||
certfile: str?
|
|
||||||
esphome_fork: str?
|
|
||||||
keyfile: str?
|
|
||||||
leave_front_door_open: bool?
|
|
||||||
relative_url: str?
|
|
||||||
ssl: bool?
|
|
||||||
status_use_ping: bool?
|
status_use_ping: bool?
|
||||||
streamer_mode: bool?
|
streamer_mode: bool?
|
||||||
slug: esphome-dev
|
default_compile_process_limit: int(1,)?
|
||||||
stage: experimental
|
esphome_fork: str?
|
||||||
uart: true
|
ssl: bool?
|
||||||
url: https://next.esphome.io/
|
certfile: str?
|
||||||
|
keyfile: str?
|
||||||
|
relative_url: str?
|
||||||
|
leave_front_door_open: bool?
|
||||||
|
backup_exclude:
|
||||||
|
- '*/*/'
|
||||||
|
init: false
|
||||||
|
name: ESPHome (dev)
|
||||||
version: dev
|
version: dev
|
||||||
|
slug: esphome-dev
|
||||||
|
description: Development version of ESPHome add-on
|
||||||
|
stage: experimental
|
||||||
|
advanced: true
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
7
esphome-dev/rootfs/etc/cont-init.d/30-esphome-fork.sh
Normal file → Executable file
@@ -25,10 +25,11 @@ if bashio::config.has_value 'esphome_fork'; then
|
|||||||
curl -L -o /tmp/esphome.tar.gz "${full_url}" -qq \
|
curl -L -o /tmp/esphome.tar.gz "${full_url}" -qq \
|
||||||
|| bashio::exit.nok "Failed downloading ESPHome fork."
|
|| bashio::exit.nok "Failed downloading ESPHome fork."
|
||||||
bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..."
|
bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..."
|
||||||
mkdir /esphome-fork
|
rm -rf /esphome || bashio::exit.nok "Failed to remove ESPHome."
|
||||||
tar -zxf /tmp/esphome.tar.gz -C /esphome-fork --strip-components=1 \
|
mkdir /esphome
|
||||||
|
tar -zxf /tmp/esphome.tar.gz -C /esphome --strip-components=1 \
|
||||||
|| bashio::exit.nok "Failed installing ESPHome from fork."
|
|| bashio::exit.nok "Failed installing ESPHome from fork."
|
||||||
pip install -U -e /esphome-fork || bashio::exit.nok "Failed installing ESPHome from fork."
|
pip install -U -e /esphome || bashio::exit.nok "Failed installing ESPHome from fork."
|
||||||
rm -f /tmp/esphome.tar.gz
|
rm -f /tmp/esphome.tar.gz
|
||||||
fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)")
|
fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)")
|
||||||
|
|
||||||
|
|||||||
60
esphome-dev/translations/en.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
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**.
|
||||||
|
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,35 +1,35 @@
|
|||||||
---
|
---
|
||||||
|
url: https://esphome.io/
|
||||||
arch:
|
arch:
|
||||||
- amd64
|
- amd64
|
||||||
- armv7
|
- armv7
|
||||||
- aarch64
|
- aarch64
|
||||||
auth_api: true
|
|
||||||
backup_exclude:
|
|
||||||
- '*/*/'
|
|
||||||
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
|
|
||||||
hassio_api: true
|
hassio_api: true
|
||||||
|
auth_api: true
|
||||||
host_network: true
|
host_network: true
|
||||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
|
||||||
ingress: true
|
ingress: true
|
||||||
ingress_port: 0
|
ingress_port: 0
|
||||||
|
panel_icon: mdi:chip
|
||||||
|
uart: true
|
||||||
|
ports:
|
||||||
|
6052/tcp: null
|
||||||
map:
|
map:
|
||||||
- ssl:ro
|
- ssl:ro
|
||||||
- config:rw
|
- config:rw
|
||||||
name: ESPHome
|
|
||||||
panel_icon: mdi:chip
|
|
||||||
ports:
|
|
||||||
6052/tcp: null
|
|
||||||
ports_description:
|
|
||||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
|
||||||
schema:
|
schema:
|
||||||
certfile: str?
|
|
||||||
keyfile: str?
|
|
||||||
leave_front_door_open: bool?
|
|
||||||
relative_url: str?
|
|
||||||
ssl: bool?
|
|
||||||
status_use_ping: bool?
|
status_use_ping: bool?
|
||||||
streamer_mode: bool?
|
streamer_mode: bool?
|
||||||
|
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.6
|
||||||
slug: esphome
|
slug: esphome
|
||||||
uart: true
|
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
|
||||||
url: https://esphome.io/
|
image: ghcr.io/esphome/esphome-hassio
|
||||||
version: 2022.3.2
|
|
||||||
|
|||||||
BIN
esphome/logo.png
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
60
esphome/translations/en.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
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**.
|
||||||
|
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)
|
||||||
@@ -35,7 +35,7 @@ def main(args):
|
|||||||
dir_ = root / conf.pop("directory")
|
dir_ = root / conf.pop("directory")
|
||||||
path = dir_ / "config.yaml"
|
path = dir_ / "config.yaml"
|
||||||
with open(path, "w") as f:
|
with open(path, "w") as f:
|
||||||
yaml.dump(conf, f, indent=2, sort_keys=True, explicit_start=True)
|
yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True)
|
||||||
|
|
||||||
for file_, conf_ in copyf.items():
|
for file_, conf_ in copyf.items():
|
||||||
if Path.exists(templ / channel.value / file_):
|
if Path.exists(templ / channel.value / file_):
|
||||||
@@ -51,7 +51,7 @@ def main(args):
|
|||||||
path = dir_ / "build.yaml"
|
path = dir_ / "build.yaml"
|
||||||
build_conf = {
|
build_conf = {
|
||||||
"build_from": {
|
"build_from": {
|
||||||
arch: base_image.format(arch=arch) for arch in conf["arch"]
|
arch: base_image for arch in conf["arch"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
with open(path, "w") as f:
|
with open(path, "w") as f:
|
||||||
|
|||||||
@@ -21,21 +21,22 @@ base: &base
|
|||||||
uart: true
|
uart: true
|
||||||
ports:
|
ports:
|
||||||
'6052/tcp': null
|
'6052/tcp': null
|
||||||
ports_description:
|
|
||||||
'6052/tcp': "Web interface (not required for Home Assistant ingress)"
|
|
||||||
map:
|
map:
|
||||||
- ssl:ro
|
- ssl:ro
|
||||||
- config:rw
|
- config:rw
|
||||||
schema:
|
schema:
|
||||||
|
status_use_ping: bool?
|
||||||
|
streamer_mode: bool?
|
||||||
|
default_compile_process_limit: int(1,)?
|
||||||
ssl: bool?
|
ssl: bool?
|
||||||
certfile: str?
|
certfile: str?
|
||||||
keyfile: str?
|
keyfile: str?
|
||||||
leave_front_door_open: bool?
|
|
||||||
streamer_mode: bool?
|
|
||||||
relative_url: str?
|
relative_url: str?
|
||||||
status_use_ping: bool?
|
leave_front_door_open: bool?
|
||||||
backup_exclude:
|
backup_exclude:
|
||||||
- "*/*/"
|
- "*/*/"
|
||||||
|
# Disable docker init for s6
|
||||||
|
init: false
|
||||||
|
|
||||||
esphome-dev:
|
esphome-dev:
|
||||||
<<: *base
|
<<: *base
|
||||||
@@ -48,25 +49,26 @@ esphome-dev:
|
|||||||
stage: experimental
|
stage: experimental
|
||||||
advanced: true
|
advanced: true
|
||||||
schema:
|
schema:
|
||||||
|
status_use_ping: bool?
|
||||||
|
streamer_mode: bool?
|
||||||
|
default_compile_process_limit: int(1,)?
|
||||||
|
esphome_fork: str?
|
||||||
ssl: bool?
|
ssl: bool?
|
||||||
certfile: str?
|
certfile: str?
|
||||||
keyfile: str?
|
keyfile: str?
|
||||||
leave_front_door_open: bool?
|
|
||||||
streamer_mode: bool?
|
|
||||||
relative_url: str?
|
relative_url: str?
|
||||||
status_use_ping: bool?
|
leave_front_door_open: bool?
|
||||||
esphome_fork: str?
|
base_image: ghcr.io/esphome/esphome-hassio:dev
|
||||||
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
|
|
||||||
|
|
||||||
esphome-beta:
|
esphome-beta:
|
||||||
<<: *base
|
<<: *base
|
||||||
directory: esphome-beta
|
directory: esphome-beta
|
||||||
name: ESPHome (beta)
|
name: ESPHome (beta)
|
||||||
version: '2022.3.2' # BETA
|
version: '2022.12.6' # BETA
|
||||||
slug: esphome-beta
|
slug: esphome-beta
|
||||||
description: "Beta version of ESPHome add-on"
|
description: "Beta version of ESPHome add-on"
|
||||||
url: https://beta.esphome.io/
|
url: https://beta.esphome.io/
|
||||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
image: ghcr.io/esphome/esphome-hassio
|
||||||
stage: experimental
|
stage: experimental
|
||||||
advanced: true
|
advanced: true
|
||||||
|
|
||||||
@@ -74,14 +76,15 @@ esphome-stable:
|
|||||||
<<: *base
|
<<: *base
|
||||||
directory: esphome
|
directory: esphome
|
||||||
name: ESPHome
|
name: ESPHome
|
||||||
version: '2022.3.2' # STABLE
|
version: '2022.12.6' # STABLE
|
||||||
slug: esphome
|
slug: esphome
|
||||||
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
|
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
|
||||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
image: ghcr.io/esphome/esphome-hassio
|
||||||
|
|
||||||
copy_files:
|
copy_files:
|
||||||
|
CHANGELOG.md:
|
||||||
|
DOCS.md:
|
||||||
icon.png:
|
icon.png:
|
||||||
logo.png:
|
logo.png:
|
||||||
README.md:
|
README.md:
|
||||||
DOCS.md:
|
translations/en.yaml:
|
||||||
CHANGELOG.md:
|
|
||||||
|
|||||||
@@ -1,40 +1,31 @@
|
|||||||
# Home Assistant Community Add-on: ESPHome
|
# ESPHome DEV add on
|
||||||
|
|
||||||
## Installation
|
This is **development** version of the ESPHome add on.
|
||||||
|
|
||||||
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Home Assistant add-on.
|
To deploy production nodes please use mainstream release add on.
|
||||||
|
|
||||||
1. Search for the “ESPHome” add-on in the Supervisor add-on store.
|
The add on uses a version of ESPHome built automatically every day at 02:00 UTC. and is used to test components in development. See the `esphome_fork` configuration below to properly configure the add on. Once you update the configuration make sure to rebuild the image.
|
||||||
2. Press install to download the add-on and unpack it on your machine. This can take some time.
|
|
||||||
3. Optional: If you're using SSL/TLS certificates and want to encrypt your communication to this add-on, please enter `true` into the `ssl` field and set the `fullchain` and `certfile` options accordingly.
|
|
||||||
4. Start the add-on, check the logs of the add-on to see if everything went well.
|
|
||||||
5. Click "OPEN WEB UI" to open the ESPHome dashboard. You will be asked for your Home Assistant credentials - ESPHome uses Home Assistant's authentication system to log you in.
|
|
||||||
|
|
||||||
You can view the ESPHome documentation at https://esphome.io/
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
**Note**: _Remember to restart the add-on when the configuration is changed._
|
**Note**: _Remember to restart the add-on when the configuration is changed._
|
||||||
|
|
||||||
Example add-on configuration:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"ssl": false,
|
|
||||||
"certfile": "fullchain.pem",
|
|
||||||
"keyfile": "privkey.pem"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Option: `esphome_fork`
|
### Option: `esphome_fork`
|
||||||
|
|
||||||
Install ESPHome from a fork or branch.
|
Install ESPHome from a fork or branch.
|
||||||
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
|
For example to test a pull request, use `pull/XXXX/head` where `XXXX` is the PR number,
|
||||||
or you can specify the username of the fork owner and branch `username:branch` which
|
or you can specify the username of the fork owner and branch `username:branch` which
|
||||||
assumes the repository is named `esphome` still.
|
assumes the repository is named `esphome` still.
|
||||||
|
|
||||||
|
If you need to test the latest commit on dev branch before the image is updated you can enter `dev` here.
|
||||||
|
|
||||||
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
|
Please note that the fork or branch you are using **must** be up to date with ESPHome dev
|
||||||
or the add-on **will not start**.
|
or the add-on **will not start**.
|
||||||
|
|
||||||
|
|
||||||
|
## General ESPHome add on configurations
|
||||||
|
|
||||||
|
General options also available in other versions.
|
||||||
|
|
||||||
### Option: `ssl`
|
### Option: `ssl`
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
60
template/translations/en.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
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**.
|
||||||
|
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)
|
||||||