mirror of
https://github.com/esphome/esphome.git
synced 2026-05-28 04:55:48 +08:00
[ha-addon] Add opt-in toggle for the new ESPHome Device Builder (#16247)
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Installs the latest prerelease of esphome-device-builder when the
|
||||||
|
# `use_new_device_builder` config option is enabled.
|
||||||
|
# This is a temporary install-on-boot step until esphome-device-builder
|
||||||
|
# becomes a direct dependency of esphome.
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
if ! bashio::config.true 'use_new_device_builder'; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
bashio::log.info "Installing latest prerelease of esphome-device-builder..."
|
||||||
|
if command -v uv > /dev/null; then
|
||||||
|
uv pip install --system --no-cache-dir --prerelease=allow --upgrade \
|
||||||
|
esphome-device-builder ||
|
||||||
|
bashio::exit.nok "Failed installing esphome-device-builder."
|
||||||
|
else
|
||||||
|
pip install --no-cache-dir --pre --upgrade esphome-device-builder ||
|
||||||
|
bashio::exit.nok "Failed installing esphome-device-builder."
|
||||||
|
fi
|
||||||
|
bashio::log.info "Installed esphome-device-builder."
|
||||||
@@ -49,5 +49,12 @@ if bashio::fs.directory_exists '/config/esphome/.esphome'; then
|
|||||||
rm -rf /config/esphome/.esphome
|
rm -rf /config/esphome/.esphome
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if bashio::config.true 'use_new_device_builder'; then
|
||||||
|
bashio::log.info "Starting ESPHome Device Builder..."
|
||||||
|
exec esphome-device-builder /config/esphome \
|
||||||
|
--ha-addon \
|
||||||
|
--ingress-port "$(bashio::addon.ingress_port)"
|
||||||
|
fi
|
||||||
|
|
||||||
bashio::log.info "Starting ESPHome dashboard..."
|
bashio::log.info "Starting ESPHome dashboard..."
|
||||||
exec esphome dashboard /config/esphome --socket /var/run/esphome.sock --ha-addon
|
exec esphome dashboard /config/esphome --socket /var/run/esphome.sock --ha-addon
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
# Community Hass.io Add-ons: ESPHome
|
# Community Hass.io Add-ons: ESPHome
|
||||||
# Configures NGINX for use with ESPHome
|
# Configures NGINX for use with ESPHome
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
# When the new device builder is enabled it serves HA ingress directly,
|
||||||
|
# so nginx is not used at all -- skip configuration.
|
||||||
|
if bashio::config.true 'use_new_device_builder'; then
|
||||||
|
bashio::log.info "Skipping NGINX setup: new device builder serves ingress directly."
|
||||||
|
bashio::exit.ok
|
||||||
|
fi
|
||||||
|
|
||||||
mkdir -p /var/log/nginx
|
mkdir -p /var/log/nginx
|
||||||
|
|
||||||
# Generate Ingress configuration
|
# Generate Ingress configuration
|
||||||
|
|||||||
@@ -5,6 +5,14 @@
|
|||||||
# Runs the NGINX proxy
|
# Runs the NGINX proxy
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
|
# The new device builder handles HA ingress itself, so nginx is bypassed.
|
||||||
|
# Block the longrun forever so s6 keeps the dependency satisfied and does
|
||||||
|
# not respawn it.
|
||||||
|
if bashio::config.true 'use_new_device_builder'; then
|
||||||
|
bashio::log.info "NGINX bypassed: new device builder serves ingress directly."
|
||||||
|
exec sleep infinity
|
||||||
|
fi
|
||||||
|
|
||||||
bashio::log.info "Waiting for ESPHome dashboard to come up..."
|
bashio::log.info "Waiting for ESPHome dashboard to come up..."
|
||||||
|
|
||||||
while [[ ! -S /var/run/esphome.sock ]]; do
|
while [[ ! -S /var/run/esphome.sock ]]; do
|
||||||
|
|||||||
Reference in New Issue
Block a user