diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88efa3776e..0cc29416c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,11 +41,11 @@ stages: - | if [[ "${IS_HASSIO}" == "YES" ]]; then - BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.3.0 + BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.1 BUILD_TO=esphome/esphome-hassio-${BUILD_ARCH} DOCKERFILE=docker/Dockerfile.hassio else - BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.3.0 + BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.1 if [[ "${BUILD_ARCH}" == "amd64" ]]; then BUILD_TO=esphome/esphome else diff --git a/docker/Dockerfile b/docker/Dockerfile index 91477cdfe8..2568ef37f3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG BUILD_FROM=esphome/esphome-base-amd64:1.3.0 +ARG BUILD_FROM=esphome/esphome-base-amd64:1.4.1 FROM ${BUILD_FROM} COPY . . diff --git a/docker/Dockerfile.hassio b/docker/Dockerfile.hassio index c0a507485c..95888739bd 100644 --- a/docker/Dockerfile.hassio +++ b/docker/Dockerfile.hassio @@ -1,4 +1,4 @@ -ARG BUILD_FROM=esphome/esphome-hassio-base-amd64:1.3.0 +ARG BUILD_FROM=esphome/esphome-hassio-base-amd64:1.4.1 FROM ${BUILD_FROM} # Copy root filesystem diff --git a/docker/hooks/build b/docker/hooks/build index 65c27d10da..083c5c50a8 100755 --- a/docker/hooks/build +++ b/docker/hooks/build @@ -16,11 +16,11 @@ echo "PWD: $PWD" if [[ ${IS_HASSIO} = "YES" ]]; then docker build \ - --build-arg "BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.3.0" \ + --build-arg "BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.1" \ --build-arg "BUILD_VERSION=${CACHE_TAG}" \ -t "${IMAGE_NAME}" -f ../docker/Dockerfile.hassio .. else docker build \ - --build-arg "BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.3.0" \ + --build-arg "BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.1" \ -t "${IMAGE_NAME}" -f ../docker/Dockerfile .. fi diff --git a/docker/rootfs/etc/cont-init.d/10-requirements.sh b/docker/rootfs/etc/cont-init.d/10-requirements.sh index 898e811d39..9d49c2b4dd 100755 --- a/docker/rootfs/etc/cont-init.d/10-requirements.sh +++ b/docker/rootfs/etc/cont-init.d/10-requirements.sh @@ -1,35 +1,41 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # This files check if all user configuration requirements are met # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh # Check SSL requirements, if enabled -if hass.config.true 'ssl'; then - if ! hass.config.has_value 'certfile'; then - hass.die 'SSL is enabled, but no certfile was specified.' +if bashio::config.true 'ssl'; then + if ! bashio::config.has_value 'certfile'; then + bashio::fatal 'SSL is enabled, but no certfile was specified.' + bashio::exit.nok fi - if ! hass.config.has_value 'keyfile'; then - hass.die 'SSL is enabled, but no keyfile was specified' + if ! bashio::config.has_value 'keyfile'; then + bashio::fatal 'SSL is enabled, but no keyfile was specified' + bashio::exit.nok fi - if ! hass.file_exists "/ssl/$(hass.config.get 'certfile')"; then - if ! hass.file_exists "/ssl/$(hass.config.get 'keyfile')"; then + + certfile="/ssl/$(bashio::config 'certfile')" + keyfile="/ssl/$(bashio::config 'keyfile')" + + if ! bashio::fs.file_exists "${certfile}"; then + if ! bashio::fs.file_exists "${keyfile}"; then # Both files are missing, let's print a friendlier error message - text="You enabled encrypted connections using the \"ssl\": true option. - However, the SSL files \"$(hass.config.get 'certfile')\" and \"$(hass.config.get 'keyfile')\" - were not found. If you're using Hass.io on your local network and don't want - to encrypt connections to the ESPHome dashboard, you can manually disable - SSL by setting \"ssl\" to false." - hass.die "${text}" + bashio::log.fatal 'You enabled encrypted connections using the "ssl": true option.' + bashio::log.fatal "However, the SSL files '${certfile}' and '${keyfile}'" + bashio::log.fatal "were not found. If you're using Hass.io on your local network and don't want" + bashio::log.fatal 'to encrypt connections to the ESPHome dashboard, you can manually disable' + bashio::log.fatal 'SSL by setting "ssl" to false."' + bashio::exit.nok fi - hass.die 'The configured certfile is not found' + bashio::log.fatal "The configured certfile '${certfile}' was not found." + bashio::exit.nok fi - if ! hass.file_exists "/ssl/$(hass.config.get 'keyfile')"; then - hass.die 'The configured keyfile is not found' + if ! bashio::fs.file_exists "/ssl/$(bashio::config 'keyfile')"; then + bashio::log.fatal "The configured keyfile '${keyfile}' was not found." + bashio::exit.nok fi fi diff --git a/docker/rootfs/etc/cont-init.d/20-nginx.sh b/docker/rootfs/etc/cont-init.d/20-nginx.sh index 42fcd1ef36..cd9b2c6b80 100755 --- a/docker/rootfs/etc/cont-init.d/20-nginx.sh +++ b/docker/rootfs/etc/cont-init.d/20-nginx.sh @@ -1,10 +1,8 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # Configures NGINX for use with ESPHome # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh declare certfile declare keyfile @@ -13,16 +11,16 @@ declare port mkdir -p /var/log/nginx # Enable SSL -if hass.config.true 'ssl'; then +if bashio::config.true 'ssl'; then rm /etc/nginx/nginx.conf mv /etc/nginx/nginx-ssl.conf /etc/nginx/nginx.conf - certfile=$(hass.config.get 'certfile') - keyfile=$(hass.config.get 'keyfile') + certfile=$(bashio::config 'certfile') + keyfile=$(bashio::config 'keyfile') sed -i "s/%%certfile%%/${certfile}/g" /etc/nginx/nginx.conf sed -i "s/%%keyfile%%/${keyfile}/g" /etc/nginx/nginx.conf fi -port=$(hass.config.get 'port') +port=$(bashio::config 'port') sed -i "s/%%port%%/${port}/g" /etc/nginx/nginx.conf diff --git a/docker/rootfs/etc/cont-init.d/30-esphome.sh b/docker/rootfs/etc/cont-init.d/30-esphome.sh index e4f6b506c0..26df8081bd 100644 --- a/docker/rootfs/etc/cont-init.d/30-esphome.sh +++ b/docker/rootfs/etc/cont-init.d/30-esphome.sh @@ -1,14 +1,15 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # This files installs the user ESPHome version if specified # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh declare esphome_version -if hass.config.has_value 'esphome_version'; then - esphome_version=$(hass.config.get 'esphome_version') - pip2 install --no-cache-dir --no-binary :all: "https://github.com/esphome/esphome/archive/${esphome_version}.zip" +if bashio::config.has_value 'esphome_version'; then + esphome_version=$(bashio::config 'esphome_version') + full_url="https://github.com/esphome/esphome/archive/${esphome_version}.zip" + bashio::log.info "Installing esphome version '${esphome_version}' (${full_url})..." + pip2 install --no-cache-dir --no-binary :all: "${full_url}" \ + || bashio::exit.nok "Failed installing esphome pinned version." fi diff --git a/docker/rootfs/etc/cont-init.d/40-migrate.sh b/docker/rootfs/etc/cont-init.d/40-migrate.sh index 600440ff15..88e8be26b9 100644 --- a/docker/rootfs/etc/cont-init.d/40-migrate.sh +++ b/docker/rootfs/etc/cont-init.d/40-migrate.sh @@ -1,10 +1,8 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # This files migrates the esphome config directory from the old path # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh if [[ ! -d /config/esphome && -d /config/esphomeyaml ]]; then echo "Moving config directory from /config/esphomeyaml to /config/esphome" diff --git a/docker/rootfs/etc/services.d/esphome/run b/docker/rootfs/etc/services.d/esphome/run index e3e95b520a..6257bec6a3 100755 --- a/docker/rootfs/etc/services.d/esphome/run +++ b/docker/rootfs/etc/services.d/esphome/run @@ -1,28 +1,26 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # Runs the ESPHome dashboard # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh export ESPHOME_IS_HASSIO=true -if hass.config.true 'leave_front_door_open'; then +if bashio::config.true 'leave_front_door_open'; then export DISABLE_HA_AUTHENTICATION=true fi -if hass.config.true 'streamer_mode'; then +if bashio::config.true 'streamer_mode'; then export ESPHOME_STREAMER_MODE=true fi -if hass.config.true 'status_use_ping'; then +if bashio::config.true 'status_use_ping'; then export ESPHOME_DASHBOARD_USE_PING=true fi -if hass.config.has_value 'relative_url'; then - export ESPHOME_DASHBOARD_RELATIVE_URL=$(hass.config.get 'relative_url') +if bashio::config.has_value 'relative_url'; then + export ESPHOME_DASHBOARD_RELATIVE_URL=$(bashio::config 'relative_url') fi -hass.log.info "Starting ESPHome dashboard..." +bashio::log.info "Starting ESPHome dashboard..." exec esphome /config/esphome dashboard --socket /var/run/esphome.sock --hassio diff --git a/docker/rootfs/etc/services.d/nginx/run b/docker/rootfs/etc/services.d/nginx/run index ab7e5db542..adf93bc8dd 100755 --- a/docker/rootfs/etc/services.d/nginx/run +++ b/docker/rootfs/etc/services.d/nginx/run @@ -1,10 +1,8 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv bashio # ============================================================================== # Community Hass.io Add-ons: ESPHome # Runs the NGINX proxy # ============================================================================== -# shellcheck disable=SC1091 -source /usr/lib/hassio-addons/base.sh -hass.log.info "Starting NGINX..." +bashio::log.info "Starting NGINX..." exec nginx -g "daemon off;" diff --git a/esphome/components/sensor/rotary_encoder.py b/esphome/components/sensor/rotary_encoder.py index 1df4017d8b..f8facd7176 100644 --- a/esphome/components/sensor/rotary_encoder.py +++ b/esphome/components/sensor/rotary_encoder.py @@ -63,7 +63,7 @@ def to_code(config): if CONF_MIN_VALUE in config: add(encoder.set_min_value(config[CONF_MIN_VALUE])) if CONF_MAX_VALUE in config: - add(encoder.set_min_value(config[CONF_MAX_VALUE])) + add(encoder.set_max_value(config[CONF_MAX_VALUE])) sensor.setup_sensor(encoder, config) setup_component(encoder, config)