Improve UI experience for ESPHome add-ons (#67)

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
This commit is contained in:
Franck Nijhof 2023-01-18 20:58:57 +01:00 committed by GitHub
parent 74c25cb1dc
commit c623ae0bc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 314 additions and 81 deletions

View File

@ -1,39 +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
init: false 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?
default_compile_process_limit: int(1,)?
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-beta default_compile_process_limit: int(1,)?
stage: experimental ssl: bool?
uart: true certfile: str?
url: https://beta.esphome.io/ keyfile: str?
relative_url: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
name: ESPHome (beta)
version: 2022.12.3 version: 2022.12.3
slug: esphome-beta
description: Beta version of ESPHome add-on
image: ghcr.io/esphome/esphome-hassio-{arch}
stage: experimental
advanced: true

View 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)

View File

@ -1,39 +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
init: false 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?
default_compile_process_limit: int(1,)?
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

View 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)

View File

@ -1,37 +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
init: false 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?
default_compile_process_limit: int(1,)?
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 default_compile_process_limit: int(1,)?
uart: true ssl: bool?
url: https://esphome.io/ certfile: str?
keyfile: str?
relative_url: str?
leave_front_door_open: bool?
backup_exclude:
- '*/*/'
init: false
name: ESPHome
version: 2022.12.3 version: 2022.12.3
slug: esphome
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
image: ghcr.io/esphome/esphome-hassio-{arch}

View 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)

View File

@ -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_):

View File

@ -21,20 +21,18 @@ 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?
default_compile_process_limit: int(1,)?
backup_exclude: backup_exclude:
- "*/*/" - "*/*/"
# Disable docker init for s6 # Disable docker init for s6
@ -51,15 +49,15 @@ 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?
default_compile_process_limit: int(1,)?
base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev base_image: ghcr.io/esphome/esphome-hassio-{arch}:dev
esphome-beta: esphome-beta:
@ -84,8 +82,9 @@ esphome-stable:
image: ghcr.io/esphome/esphome-hassio-{arch} image: ghcr.io/esphome/esphome-hassio-{arch}
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:

View 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)