Compare commits
110 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
|
||||
77
.github/workflows/bump-version.yml
vendored
@@ -6,18 +6,36 @@ on:
|
||||
version:
|
||||
description: The version to release
|
||||
required: true
|
||||
content:
|
||||
description: The content of the release-notes
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- uses: actions/checkout@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: |
|
||||
@@ -28,59 +46,14 @@ jobs:
|
||||
git push
|
||||
COMMIT=$(git rev-parse HEAD)
|
||||
echo "::set-output name=commit_sha::${COMMIT}"
|
||||
- if: ${{ contains(github.event.inputs.version, 'b') }}
|
||||
name: Create Beta Release
|
||||
uses: actions/create-release@v1
|
||||
- name: Create a Release
|
||||
uses: actions/create-release@v1.1.4
|
||||
continue-on-error: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: v${{ github.event.inputs.version }}
|
||||
tag_name: ${{ github.event.inputs.version }}
|
||||
release_name: ${{ github.event.inputs.version }}
|
||||
body: 'See https://beta.esphome.io/changelog/index.html'
|
||||
prerelease: true
|
||||
body: ${{ github.event.inputs.content }}
|
||||
prerelease: ${{ contains(github.event.inputs.version, 'b') }}
|
||||
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
||||
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||
name: Create Stable Release
|
||||
uses: actions/create-release@v1
|
||||
continue-on-error: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: v${{ github.event.inputs.version }}
|
||||
release_name: ${{ github.event.inputs.version }}
|
||||
body: 'See https://esphome.io/changelog/index.html'
|
||||
prerelease: false
|
||||
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
||||
|
||||
deploy-community-addons:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [create-release]
|
||||
steps:
|
||||
- name: Publish beta release to community-addons repository
|
||||
uses: peter-evans/repository-dispatch@v1.1.3
|
||||
with:
|
||||
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
|
||||
repository: hassio-addons/repository-beta
|
||||
event-type: update
|
||||
client-payload: >
|
||||
{
|
||||
"addon": "esphome",
|
||||
"name": "ESPHome",
|
||||
"repository": "esphome/home-assistant-addon",
|
||||
"version": "${{ github.event.inputs.version }}"
|
||||
}
|
||||
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||
name: Publish stable release to community-addons repository
|
||||
uses: peter-evans/repository-dispatch@v1.1.3
|
||||
with:
|
||||
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
|
||||
repository: hassio-addons/repository
|
||||
event-type: update
|
||||
client-payload: >
|
||||
{
|
||||
"addon": "esphome",
|
||||
"name": "ESPHome",
|
||||
"repository": "esphome/home-assistant-addon",
|
||||
"version": "${{ github.event.inputs.version }}"
|
||||
}
|
||||
|
||||
46
.github/workflows/deploy-community.yml
vendored
@@ -1,46 +0,0 @@
|
||||
name: Update Community Repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: The version to release
|
||||
required: true
|
||||
beta:
|
||||
description: Whether to release a beta version
|
||||
type: boolean
|
||||
required: false
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
deploy-community-addons:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- if: ${{ contains(github.event.inputs.version, 'b') || github.event.inputs.beta == 'true' }}
|
||||
name: Publish beta release to community-addons repository
|
||||
uses: peter-evans/repository-dispatch@v1.1.3
|
||||
with:
|
||||
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
|
||||
repository: hassio-addons/repository-beta
|
||||
event-type: update
|
||||
client-payload: >
|
||||
{
|
||||
"addon": "esphome",
|
||||
"name": "ESPHome",
|
||||
"repository": "esphome/home-assistant-addon",
|
||||
"version": "${{ github.event.inputs.version }}"
|
||||
}
|
||||
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||
name: Publish stable release to community-addons repository
|
||||
uses: peter-evans/repository-dispatch@v1.1.3
|
||||
with:
|
||||
token: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
|
||||
repository: hassio-addons/repository
|
||||
event-type: update
|
||||
client-payload: >
|
||||
{
|
||||
"addon": "esphome",
|
||||
"name": "ESPHome",
|
||||
"repository": "esphome/home-assistant-addon",
|
||||
"version": "${{ github.event.inputs.version }}"
|
||||
}
|
||||
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
|
||||
steps:
|
||||
- name: ⤵️ Check out code from GitHub
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3.3.0
|
||||
- name: 🛠 Setup Python
|
||||
uses: actions/setup-python@v2
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: 🛠 Install dependencies
|
||||
@@ -29,6 +29,6 @@ jobs:
|
||||
- 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
|
||||
uses: frenck/action-addon-linter@v2.11.0
|
||||
with:
|
||||
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 +1,4 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
## 2023.2.1
|
||||
|
||||
- Add ESPHome version to generated platformio.ini [esphome#4443](https://github.com/esphome/esphome/pull/4443) by [@jesserockz](https://github.com/jesserockz)
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"advanced": true,
|
||||
"arch": [
|
||||
"amd64",
|
||||
"armv7",
|
||||
"aarch64"
|
||||
],
|
||||
"auth_api": true,
|
||||
"backup_exclude": [
|
||||
"*/*/"
|
||||
],
|
||||
"description": "Beta version of ESPHome add-on",
|
||||
"hassio_api": true,
|
||||
"host_network": true,
|
||||
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
|
||||
"ingress": true,
|
||||
"ingress_port": 0,
|
||||
"map": [
|
||||
"ssl:ro",
|
||||
"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": {
|
||||
"certfile": "str?",
|
||||
"keyfile": "str?",
|
||||
"leave_front_door_open": "bool?",
|
||||
"relative_url": "str?",
|
||||
"ssl": "bool?",
|
||||
"status_use_ping": "bool?",
|
||||
"streamer_mode": "bool?"
|
||||
},
|
||||
"slug": "esphome-beta",
|
||||
"stage": "experimental",
|
||||
"uart": true,
|
||||
"url": "https://beta.esphome.io/",
|
||||
"version": "2022.2.3"
|
||||
}
|
||||
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.1
|
||||
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: 11 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,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.
|
||||
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/
|
||||
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._
|
||||
|
||||
Example add-on configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"ssl": false,
|
||||
"certfile": "fullchain.pem",
|
||||
"keyfile": "privkey.pem"
|
||||
}
|
||||
```
|
||||
|
||||
### 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.
|
||||
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**.
|
||||
or the add-on **will not start**.
|
||||
|
||||
|
||||
## General ESPHome add on configurations
|
||||
|
||||
General options also available in other versions.
|
||||
|
||||
### Option: `ssl`
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"build_from": {
|
||||
"aarch64": "ghcr.io/esphome/esphome-hassio-aarch64:dev",
|
||||
"amd64": "ghcr.io/esphome/esphome-hassio-amd64:dev",
|
||||
"armv7": "ghcr.io/esphome/esphome-hassio-armv7:dev"
|
||||
}
|
||||
}
|
||||
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,44 +0,0 @@
|
||||
{
|
||||
"advanced": true,
|
||||
"arch": [
|
||||
"amd64",
|
||||
"armv7",
|
||||
"aarch64"
|
||||
],
|
||||
"auth_api": true,
|
||||
"backup_exclude": [
|
||||
"*/*/"
|
||||
],
|
||||
"description": "Development version of ESPHome add-on",
|
||||
"hassio_api": true,
|
||||
"host_network": true,
|
||||
"ingress": true,
|
||||
"ingress_port": 0,
|
||||
"map": [
|
||||
"ssl:ro",
|
||||
"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": {
|
||||
"certfile": "str?",
|
||||
"esphome_fork": "str?",
|
||||
"keyfile": "str?",
|
||||
"leave_front_door_open": "bool?",
|
||||
"relative_url": "str?",
|
||||
"ssl": "bool?",
|
||||
"status_use_ping": "bool?",
|
||||
"streamer_mode": "bool?"
|
||||
},
|
||||
"slug": "esphome-dev",
|
||||
"stage": "experimental",
|
||||
"uart": true,
|
||||
"url": "https://next.esphome.io/",
|
||||
"version": "dev"
|
||||
}
|
||||
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: 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 \
|
||||
|| bashio::exit.nok "Failed downloading ESPHome fork."
|
||||
bashio::log.info "Installing ESPHome from fork '${esphome_fork}' (${full_url})..."
|
||||
mkdir /esphome-fork
|
||||
tar -zxf /tmp/esphome.tar.gz -C /esphome-fork --strip-components=1 \
|
||||
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-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
|
||||
fork_version=$(python3 -c "from esphome.const import __version__; print(__version__)")
|
||||
|
||||
|
||||
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)
|
||||
@@ -1 +1,4 @@
|
||||
See https://esphome.io/changelog/index.html
|
||||
## 2023.2.1
|
||||
|
||||
- Add ESPHome version to generated platformio.ini [esphome#4443](https://github.com/esphome/esphome/pull/4443) by [@jesserockz](https://github.com/jesserockz)
|
||||
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
"arch": [
|
||||
"amd64",
|
||||
"armv7",
|
||||
"aarch64"
|
||||
],
|
||||
"auth_api": true,
|
||||
"backup_exclude": [
|
||||
"*/*/"
|
||||
],
|
||||
"description": "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices",
|
||||
"hassio_api": true,
|
||||
"host_network": true,
|
||||
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
|
||||
"ingress": true,
|
||||
"ingress_port": 0,
|
||||
"map": [
|
||||
"ssl:ro",
|
||||
"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": {
|
||||
"certfile": "str?",
|
||||
"keyfile": "str?",
|
||||
"leave_front_door_open": "bool?",
|
||||
"relative_url": "str?",
|
||||
"ssl": "bool?",
|
||||
"status_use_ping": "bool?",
|
||||
"streamer_mode": "bool?"
|
||||
},
|
||||
"slug": "esphome",
|
||||
"uart": true,
|
||||
"url": "https://esphome.io/",
|
||||
"version": "2022.2.3"
|
||||
}
|
||||
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: 2023.2.1
|
||||
slug: esphome
|
||||
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
|
||||
image: ghcr.io/esphome/esphome-hassio
|
||||
BIN
esphome/logo.png
|
Before Width: | Height: | Size: 11 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)
|
||||
@@ -4,7 +4,6 @@ import argparse
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
from enum import Enum
|
||||
import json
|
||||
from shutil import copyfile
|
||||
import sys
|
||||
|
||||
@@ -34,9 +33,9 @@ def main(args):
|
||||
conf = config[f"esphome-{channel.value}"]
|
||||
base_image = conf.pop("base_image", None)
|
||||
dir_ = root / conf.pop("directory")
|
||||
path = dir_ / "config.json"
|
||||
path = dir_ / "config.yaml"
|
||||
with open(path, "w") as f:
|
||||
json.dump(conf, f, indent=2, sort_keys=True)
|
||||
yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True)
|
||||
|
||||
for file_, conf_ in copyf.items():
|
||||
if Path.exists(templ / channel.value / file_):
|
||||
@@ -49,16 +48,14 @@ def main(args):
|
||||
f.write("Any edits should be made to the files in the 'template' directory")
|
||||
|
||||
if channel == Channel.dev:
|
||||
path = dir_ / "build.json"
|
||||
path = dir_ / "build.yaml"
|
||||
build_conf = {
|
||||
"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:
|
||||
json.dump(build_conf, f, indent=2, sort_keys=True)
|
||||
|
||||
print(f"Wrote {path}")
|
||||
yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1 +1 @@
|
||||
PyYAML==5.4
|
||||
PyYAML==6.0
|
||||
|
||||
@@ -21,21 +21,25 @@ base: &base
|
||||
uart: true
|
||||
ports:
|
||||
'6052/tcp': null
|
||||
ports_description:
|
||||
'6052/tcp': "Web interface (not required for Home Assistant ingress)"
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
discovery:
|
||||
- esphome
|
||||
schema:
|
||||
status_use_ping: bool?
|
||||
streamer_mode: bool?
|
||||
home_assistant_dashboard_integration: bool?
|
||||
default_compile_process_limit: int(1,)?
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
leave_front_door_open: bool?
|
||||
streamer_mode: bool?
|
||||
relative_url: str?
|
||||
status_use_ping: bool?
|
||||
leave_front_door_open: bool?
|
||||
backup_exclude:
|
||||
- "*/*/"
|
||||
# Disable docker init for s6
|
||||
init: false
|
||||
|
||||
esphome-dev:
|
||||
<<: *base
|
||||
@@ -48,40 +52,47 @@ esphome-dev:
|
||||
stage: experimental
|
||||
advanced: true
|
||||
schema:
|
||||
status_use_ping: bool?
|
||||
streamer_mode: bool?
|
||||
home_assistant_dashboard_integration: bool?
|
||||
default_compile_process_limit: int(1,)?
|
||||
esphome_fork: str?
|
||||
ssl: bool?
|
||||
certfile: str?
|
||||
keyfile: str?
|
||||
leave_front_door_open: bool?
|
||||
streamer_mode: bool?
|
||||
relative_url: str?
|
||||
status_use_ping: bool?
|
||||
esphome_fork: str?
|
||||
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
|
||||
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: '2022.2.3' # BETA
|
||||
version: '2023.2.1' # BETA
|
||||
slug: esphome-beta
|
||||
description: "Beta version of ESPHome add-on"
|
||||
url: https://beta.esphome.io/
|
||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
||||
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.2.3' # STABLE
|
||||
version: '2023.2.1' # STABLE
|
||||
slug: esphome
|
||||
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:
|
||||
CHANGELOG.md:
|
||||
DOCS.md:
|
||||
icon.png:
|
||||
logo.png:
|
||||
README.md:
|
||||
DOCS.md:
|
||||
CHANGELOG.md:
|
||||
translations/en.yaml:
|
||||
|
||||
@@ -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.
|
||||
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/
|
||||
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._
|
||||
|
||||
Example add-on configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"ssl": false,
|
||||
"certfile": "fullchain.pem",
|
||||
"keyfile": "privkey.pem"
|
||||
}
|
||||
```
|
||||
|
||||
### 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.
|
||||
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**.
|
||||
or the add-on **will not start**.
|
||||
|
||||
|
||||
## General ESPHome add on configurations
|
||||
|
||||
General options also available in other versions.
|
||||
|
||||
### Option: `ssl`
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 11 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)
|
||||