diff --git a/docker/ha-addon-rootfs/etc/nginx/templates/ingress.gtpl b/docker/ha-addon-rootfs/etc/nginx/templates/ingress.gtpl index 91bd40d537..105ddde710 100644 --- a/docker/ha-addon-rootfs/etc/nginx/templates/ingress.gtpl +++ b/docker/ha-addon-rootfs/etc/nginx/templates/ingress.gtpl @@ -1,4 +1,5 @@ server { + listen 127.0.0.1:{{ .port }} default_server; listen {{ .interface }}:{{ .port }} default_server; include /etc/nginx/includes/server_params.conf; @@ -9,6 +10,7 @@ server { location / { allow 172.30.32.2; + allow 127.0.0.1; deny all; proxy_pass http://esphome; diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/dependencies.d/esphome b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/dependencies.d/esphome new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/dependencies.d/nginx b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/dependencies.d/nginx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/run b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/run new file mode 100755 index 0000000000..111157d301 --- /dev/null +++ b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/run @@ -0,0 +1,32 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Add-on: ESPHome +# Sends discovery information to Home Assistant. +# ============================================================================== +declare config +declare port + +# We only disable it when disabled explicitly +if bashio::config.false 'home_assistant_dashboard_integration'; +then + bashio::log.info "Home Assistant discovery is disabled for this add-on." + bashio::exit.ok +fi + +port=$(bashio::addon.ingress_port) + +# Wait for NGINX to become available +bashio::net.wait_for "${port}" "127.0.0.1" 300 + +config=$(\ + bashio::var.json \ + host "127.0.0.1" \ + port "^${port}" \ +) + +if bashio::discovery "esphome" "${config}" > /dev/null; then + bashio::log.info "Successfully send discovery information to Home Assistant." +else + bashio::log.error "Discovery message to Home Assistant failed!" +fi diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/type b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/type new file mode 100644 index 0000000000..bdd22a1850 --- /dev/null +++ b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/type @@ -0,0 +1 @@ +oneshot diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/up b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/up new file mode 100644 index 0000000000..c51c2ba820 --- /dev/null +++ b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/discovery/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/discovery/run diff --git a/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/discovery b/docker/ha-addon-rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/discovery new file mode 100644 index 0000000000..e69de29bb2