Compare commits
67 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
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- uses: actions/checkout@v3.1.0
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- run: pip install -r script/requirements.txt
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
echo "::set-output name=commit_sha::${COMMIT}"
|
||||
- if: ${{ contains(github.event.inputs.version, 'b') }}
|
||||
name: Create Beta Release
|
||||
uses: actions/create-release@v1
|
||||
uses: actions/create-release@v1.1.4
|
||||
continue-on-error: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
commitish: ${{ steps.commit_version.outputs.commit_sha }}
|
||||
- if: ${{ !contains(github.event.inputs.version, 'b') }}
|
||||
name: Create Stable Release
|
||||
uses: actions/create-release@v1
|
||||
uses: actions/create-release@v1.1.4
|
||||
continue-on-error: true
|
||||
env:
|
||||
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.1.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.2.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.1.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.10.1
|
||||
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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -13,6 +13,7 @@ host_network: true
|
||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
||||
ingress: true
|
||||
ingress_port: 0
|
||||
init: false
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
@@ -24,6 +25,7 @@ ports_description:
|
||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
||||
schema:
|
||||
certfile: str?
|
||||
default_compile_process_limit: int(1,)?
|
||||
keyfile: str?
|
||||
leave_front_door_open: bool?
|
||||
relative_url: str?
|
||||
@@ -34,4 +36,4 @@ slug: esphome-beta
|
||||
stage: experimental
|
||||
uart: true
|
||||
url: https://beta.esphome.io/
|
||||
version: 2022.4.0
|
||||
version: 2022.12.0
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
@@ -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`
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ hassio_api: true
|
||||
host_network: true
|
||||
ingress: true
|
||||
ingress_port: 0
|
||||
init: false
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
@@ -23,6 +24,7 @@ ports_description:
|
||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
||||
schema:
|
||||
certfile: str?
|
||||
default_compile_process_limit: int(1,)?
|
||||
esphome_fork: str?
|
||||
keyfile: str?
|
||||
leave_front_door_open: bool?
|
||||
|
||||
|
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__)")
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ host_network: true
|
||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
||||
ingress: true
|
||||
ingress_port: 0
|
||||
init: false
|
||||
map:
|
||||
- ssl:ro
|
||||
- config:rw
|
||||
@@ -23,6 +24,7 @@ ports_description:
|
||||
6052/tcp: Web interface (not required for Home Assistant ingress)
|
||||
schema:
|
||||
certfile: str?
|
||||
default_compile_process_limit: int(1,)?
|
||||
keyfile: str?
|
||||
leave_front_door_open: bool?
|
||||
relative_url: str?
|
||||
@@ -32,4 +34,4 @@ schema:
|
||||
slug: esphome
|
||||
uart: true
|
||||
url: https://esphome.io/
|
||||
version: 2022.4.0
|
||||
version: 2022.12.0
|
||||
|
||||
BIN
esphome/logo.png
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
@@ -34,8 +34,11 @@ base: &base
|
||||
streamer_mode: bool?
|
||||
relative_url: str?
|
||||
status_use_ping: bool?
|
||||
default_compile_process_limit: int(1,)?
|
||||
backup_exclude:
|
||||
- "*/*/"
|
||||
# Disable docker init for s6
|
||||
init: false
|
||||
|
||||
esphome-dev:
|
||||
<<: *base
|
||||
@@ -56,13 +59,14 @@ esphome-dev:
|
||||
relative_url: str?
|
||||
status_use_ping: bool?
|
||||
esphome_fork: str?
|
||||
default_compile_process_limit: int(1,)?
|
||||
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
|
||||
|
||||
esphome-beta:
|
||||
<<: *base
|
||||
directory: esphome-beta
|
||||
name: ESPHome (beta)
|
||||
version: '2022.4.0' # BETA
|
||||
version: '2022.12.0' # BETA
|
||||
slug: esphome-beta
|
||||
description: "Beta version of ESPHome add-on"
|
||||
url: https://beta.esphome.io/
|
||||
@@ -74,7 +78,7 @@ esphome-stable:
|
||||
<<: *base
|
||||
directory: esphome
|
||||
name: ESPHome
|
||||
version: '2022.4.0' # STABLE
|
||||
version: '2022.12.0' # STABLE
|
||||
slug: esphome
|
||||
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
|
||||
image: ghcr.io/esphome/esphome-hassio-{arch}
|
||||
|
||||
@@ -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 |