mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Merge branch 'dev' into rc
This commit is contained in:
		| @@ -1,24 +1,73 @@ | ||||
| # Dockerfile for HassIO edge add-on | ||||
| ARG BUILD_FROM=homeassistant/amd64-base-ubuntu:latest | ||||
| ARG BUILD_FROM=hassioaddons/ubuntu-base:2.2.0 | ||||
| # hadolint ignore=DL3006 | ||||
| FROM ${BUILD_FROM} | ||||
|  | ||||
| RUN apt-get update && apt-get install -y --no-install-recommends \ | ||||
| # Set shell | ||||
| SHELL ["/bin/bash", "-o", "pipefail", "-c"] | ||||
|  | ||||
| # Copy root filesystem | ||||
| COPY rootfs / | ||||
|  | ||||
| RUN \ | ||||
|     # Temporarily move nginx.conf (otherwise dpkg fails) | ||||
|     mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bkp \ | ||||
|     # Install add-on dependencies | ||||
|     && apt-get update \ | ||||
|     && apt-get install -y --no-install-recommends \ | ||||
|         # Python for esphomeyaml | ||||
|         python \ | ||||
|         python-pip \ | ||||
|         python-setuptools \ | ||||
|         # Python Pillow for display component | ||||
|         python-pil \ | ||||
|         # Git for esphomelib downloads | ||||
|         git \ | ||||
|     && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* && \ | ||||
|     pip install --no-cache-dir --no-binary :all: platformio && \ | ||||
|     platformio settings set enable_telemetry No && \ | ||||
|     platformio settings set check_libraries_interval 1000000 && \ | ||||
|     platformio settings set check_platformio_interval 1000000 && \ | ||||
|     platformio settings set check_platforms_interval 1000000 | ||||
|         # Ping for dashboard online/offline status | ||||
|         iputils-ping \ | ||||
|         # NGINX proxy | ||||
|         nginx \ | ||||
|     \ | ||||
|     && mv /etc/nginx/nginx.conf.bkp /etc/nginx/nginx.conf \ | ||||
|     \ | ||||
|     && pip2 install --no-cache-dir --no-binary :all: https://github.com/OttoWinter/esphomeyaml/archive/dev.zip \ | ||||
|     \ | ||||
|     # Change some platformio settings | ||||
|     && platformio settings set enable_telemetry No \ | ||||
|     && platformio settings set check_libraries_interval 1000000 \ | ||||
|     && platformio settings set check_platformio_interval 1000000 \ | ||||
|     && platformio settings set check_platforms_interval 1000000 \ | ||||
|     \ | ||||
|     # Build an empty platformio project to force platformio to install all fw build dependencies | ||||
|     # The return-code will be non-zero since there's nothing to build. | ||||
|     && (platformio run -d /opt/pio; echo "Done") \ | ||||
|     \ | ||||
|     # Cleanup | ||||
|     && rm -fr \ | ||||
|         /tmp/* \ | ||||
|         /var/{cache,log}/* \ | ||||
|         /var/lib/apt/lists/* \ | ||||
|         /opt/pio/ | ||||
|  | ||||
| COPY platformio.ini /pio/platformio.ini | ||||
| RUN platformio run -d /pio; rm -rf /pio | ||||
| # Build arugments | ||||
| ARG BUILD_ARCH=amd64 | ||||
| ARG BUILD_DATE | ||||
| ARG BUILD_REF | ||||
| ARG BUILD_VERSION | ||||
|  | ||||
| RUN pip install --no-cache-dir git+https://github.com/OttoWinter/esphomeyaml.git@dev#egg=esphomeyaml && \ | ||||
|     pip install --no-cache-dir pillow tzlocal | ||||
|  | ||||
| CMD ["esphomeyaml", "/config/esphomeyaml", "dashboard"] | ||||
| # Labels | ||||
| LABEL \ | ||||
|     io.hass.name="esphomeyaml-edge" \ | ||||
|     io.hass.description="Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files" \ | ||||
|     io.hass.arch="${BUILD_ARCH}" \ | ||||
|     io.hass.type="addon" \ | ||||
|     io.hass.version=${BUILD_VERSION} \ | ||||
|     maintainer="Otto Winter <contact@otto-winter.com>" \ | ||||
|     org.label-schema.description="Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files" \ | ||||
|     org.label-schema.build-date=${BUILD_DATE} \ | ||||
|     org.label-schema.name="esphomeyaml-edge" \ | ||||
|     org.label-schema.schema-version="1.0" \ | ||||
|     org.label-schema.url="https://esphomelib.com" \ | ||||
|     org.label-schema.usage="https://github.com/OttoWinter/esphomeyaml/tree/dev/esphomeyaml-edge/README.md" \ | ||||
|     org.label-schema.vcs-ref=${BUILD_REF} \ | ||||
|     org.label-schema.vcs-url="https://github.com/OttoWinter/esphomeyaml" \ | ||||
|     org.label-schema.vendor="esphomelib" | ||||
|   | ||||
							
								
								
									
										109
									
								
								esphomeyaml-edge/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								esphomeyaml-edge/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| # Esphomeyaml Hass.io Add-On | ||||
|  | ||||
| [](https://esphomelib.com/esphomeyaml/index.html) | ||||
|  | ||||
| [](https://github.com/OttoWinter/esphomelib) | ||||
| [![GitHub Release][releases-shield]][releases] | ||||
| [![Discord][discord-shield]][discord] | ||||
|  | ||||
| ## About | ||||
|  | ||||
| This add-on allows you to manage and program your ESP8266 and ESP32 based microcontrollers | ||||
| directly through Hass.io **with no programming experience required**. All you need to do | ||||
| is write YAML configuration files; the rest (over-the-air updates, compiling) is all | ||||
| handled by esphomeyaml. | ||||
|  | ||||
| <p align="center"> | ||||
| <img title="esphomeyaml dashboard screenshot" src="https://raw.githubusercontent.com/OttoWinter/esphomeyaml/dev/esphomeyaml-edge/images/screenshot.png" width="700px"></img> | ||||
| </p> | ||||
|  | ||||
| [_View the esphomeyaml documentation here_](https://esphomelib.com/esphomeyaml/index.html) | ||||
|  | ||||
| ## Example | ||||
|  | ||||
| With esphomeyaml, you can go from a few lines of YAML straight to a custom-made | ||||
| firmware. For example, to include a [DHT22][dht22]. | ||||
| temperature and humidity sensor, you just need to include 8 lines of YAML | ||||
| in your configuration file: | ||||
|  | ||||
| <img title="esphomeyaml DHT configuration example" src="https://raw.githubusercontent.com/OttoWinter/esphomeyaml/dev/esphomeyaml-edge/images/dht-example.png" width="500px"></img> | ||||
|  | ||||
| Then just click UPLOAD and the sensor will magically appear in Home Assistant: | ||||
|  | ||||
| <img title="esphomelib Home Assistant MQTT discovery" src="https://raw.githubusercontent.com/OttoWinter/esphomeyaml/dev/esphomeyaml-edge/images/temperature-humidity.png" width="600px"></img> | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| To install this Hass.io add-on you need to add the esphomeyaml add-on repository | ||||
| first: | ||||
|  | ||||
| 1. Add the epshomeyaml add-ons repository to your Hass.io instance. You can do this by navigating to the "Add-on Store" tab in the Hass.io panel and then entering https://github.com/OttoWinter/esphomeyaml in the "Add new repository by URL" field. | ||||
| 2. Now scroll down and select the "esphomeyaml" add-on. | ||||
| 3. Press install to download the add-on and unpack it on your machine. This can take some time. | ||||
| 4. Optional: If you're using SSL 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. | ||||
| 5. Start the add-on, check the logs of the add-on to see if everything went well. | ||||
| 6. Click "OPEN WEB UI" to open the esphomeyaml dashboard. You will be asked for your Home Assistant credentials - esphomeyaml uses Hass.io's authentication system to log you in. | ||||
|  | ||||
| **NOTE**: Installation on RPis running in 64-bit mode is currently not possible. Please use the 32-bit variant of HassOS instead. | ||||
|  | ||||
| You can view the esphomeyaml docs here: https://esphomelib.com/esphomeyaml/index.html | ||||
|  | ||||
| ## 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", | ||||
|   "port": 6052 | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ### Option: `port` | ||||
|  | ||||
| The port to start the dashboard server on. Default is 6052. | ||||
|  | ||||
| ### Option: `ssl` | ||||
|  | ||||
| Enables/Disables encrypted SSL (HTTPS) connections to the web server of this add-on. | ||||
| Set it to `true` to encrypt communications, `false` otherwise. | ||||
| Please note that if you set this to `true` you must also generate the key and certificate | ||||
| files for encryption. For example using [Let's Encrypt](https://www.home-assistant.io/addons/lets_encrypt/) | ||||
| or [Self-signed certificates](https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/). | ||||
|  | ||||
| ### Option: `certfile` | ||||
|  | ||||
| The certificate file to use for SSL. If this file doesn't exist, the add-on start will fail. | ||||
|  | ||||
| **Note**: The file MUST be stored in `/ssl/`, which is the default for Hass.io | ||||
|  | ||||
| ### Option: `keyfile` | ||||
|  | ||||
| The private key file to use for SSL. If this file doesn't exist, the add-on start will fail. | ||||
|  | ||||
| **Note**: The file MUST be stored in `/ssl/`, which is the default for Hass.io | ||||
|  | ||||
| ### Option: `leave_front_door_open` | ||||
|  | ||||
| Adding this option to the add-on configuration allows you to disable | ||||
| authentication by setting it to `true`. | ||||
|  | ||||
| ### Option: `esphomeyaml_version` | ||||
|  | ||||
| Manually override which esphomeyaml version to use in the addon. | ||||
| For example to install the latest development version, use `"esphomeyaml_version": "dev"`, | ||||
| or for version 1.10.0: `"esphomeyaml_version": "v1.10.0""`. | ||||
|   | ||||
| Please note that this does not always work and is only meant for testing, usually the | ||||
| esphomeyaml add-on and dashboard version must match to guarantee a working system.   | ||||
|  | ||||
| [discord-shield]: https://img.shields.io/discord/429907082951524364.svg | ||||
| [dht22]: https://esphomelib.com/esphomeyaml/components/sensor/dht.html | ||||
| [discord]: https://discord.me/KhAMKrd | ||||
| [releases-shield]: https://img.shields.io/github/release/OttoWinter/esphomeyaml.svg | ||||
| [releases]: https://esphomelib.com/esphomeyaml/changelog/index.html | ||||
| [repository]: https://github.com/OttoWinter/esphomeyaml | ||||
| @@ -1,10 +1,10 @@ | ||||
| { | ||||
|     "squash": false, | ||||
|     "build_from": { | ||||
|         "aarch64": "homeassistant/aarch64-base-ubuntu:latest", | ||||
|         "amd64": "homeassistant/amd64-base-ubuntu:latest", | ||||
|         "armhf": "homeassistant/armhf-base-ubuntu:latest", | ||||
|         "i386": "homeassistant/i386-base-ubuntu:latest" | ||||
|     }, | ||||
|     "args": {} | ||||
|   "squash": false, | ||||
|   "build_from": { | ||||
|     "aarch64": "hassioaddons/ubuntu-base-aarch64:2.2.0", | ||||
|     "amd64": "hassioaddons/ubuntu-base-amd64:2.2.0", | ||||
|     "armhf": "hassioaddons/ubuntu-base-armhf:2.2.0", | ||||
|     "i386": "hassioaddons/ubuntu-base-i386:2.2.0" | ||||
|   }, | ||||
|   "args": {} | ||||
| } | ||||
|   | ||||
| @@ -2,32 +2,38 @@ | ||||
|   "name": "esphomeyaml-edge", | ||||
|   "version": "dev", | ||||
|   "slug": "esphomeyaml-edge", | ||||
|   "description": "Development build of the esphomeyaml HassIO add-on.", | ||||
|   "url": "https://esphomelib.com/esphomeyaml/index.html", | ||||
|   "startup": "application", | ||||
|   "description": "Development Version! Manage and program ESP8266/ESP32 microcontrollers through YAML configuration files", | ||||
|   "url": "https://github.com/OttoWinter/esphomeyaml/tree/dev/esphomeyaml-edge/README.md", | ||||
|   "webui": "http://[HOST]:[PORT:6052]", | ||||
|   "boot": "auto", | ||||
|   "ports": { | ||||
|     "6052/tcp": 6052, | ||||
|     "6053/tcp": 6053 | ||||
|   }, | ||||
|   "startup": "application", | ||||
|   "arch": [ | ||||
|     "aarch64", | ||||
|     "amd64", | ||||
|     "armhf", | ||||
|     "i386" | ||||
|   ], | ||||
|   "auto_uart": true, | ||||
|   "hassio_api": true, | ||||
|   "auth_api": true, | ||||
|   "hassio_role": "default", | ||||
|   "homeassistant_api": false, | ||||
|   "host_network": true, | ||||
|   "boot": "auto", | ||||
|   "map": [ | ||||
|     "ssl", | ||||
|     "config:rw" | ||||
|   ], | ||||
|   "options": { | ||||
|     "password": "" | ||||
|     "ssl": false, | ||||
|     "certfile": "fullchain.pem", | ||||
|     "keyfile": "privkey.pem", | ||||
|     "port": 6052 | ||||
|   }, | ||||
|   "schema": { | ||||
|     "password": "str?" | ||||
|   }, | ||||
|   "environment": { | ||||
|     "ESPHOMEYAML_OTA_HOST_PORT": "6053" | ||||
|     "ssl": "bool", | ||||
|     "certfile": "str", | ||||
|     "keyfile": "str", | ||||
|     "port": "int", | ||||
|     "leave_front_door_open": "bool?", | ||||
|     "esphomeyaml_version": "str?" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								esphomeyaml-edge/icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								esphomeyaml-edge/icon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/dht-example.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/dht-example.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 17 KiB | 
							
								
								
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/screenshot.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/screenshot.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 50 KiB | 
							
								
								
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/temperature-humidity.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								esphomeyaml-edge/images/temperature-humidity.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 5.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								esphomeyaml-edge/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								esphomeyaml-edge/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 8.6 KiB | 
							
								
								
									
										35
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/10-requirements.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/10-requirements.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # 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.' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.config.has_value 'keyfile'; then | ||||
|         hass.die 'SSL is enabled, but no keyfile was specified' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.file_exists "/ssl/$(hass.config.get 'certfile')"; then | ||||
|         if ! hass.file_exists "/ssl/$(hass.config.get '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 esphomeyaml dashboard, you can manually disable | ||||
|             SSL by setting \"ssl\" to false." | ||||
|             hass.die "${text}" | ||||
|         fi | ||||
|         hass.die 'The configured certfile is not found' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.file_exists "/ssl/$(hass.config.get 'keyfile')"; then | ||||
|         hass.die 'The configured keyfile is not found' | ||||
|     fi | ||||
| fi | ||||
							
								
								
									
										28
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/20-nginx.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/20-nginx.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # Configures NGINX for use with esphomeyaml | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| declare certfile | ||||
| declare keyfile | ||||
| declare port | ||||
|  | ||||
| mkdir -p /var/log/nginx | ||||
|  | ||||
| # Enable SSL | ||||
| if hass.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') | ||||
|  | ||||
|     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') | ||||
| sed -i "s/%%port%%/${port}/g" /etc/nginx/nginx.conf | ||||
							
								
								
									
										14
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/30-esphomeyaml.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								esphomeyaml-edge/rootfs/etc/cont-init.d/30-esphomeyaml.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # This files installs the user esphomeyaml version if specified | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| declare esphomeyaml_version | ||||
|  | ||||
| if hass.config.has_value 'esphomeyaml_version'; then | ||||
|     esphomeyaml_version=$(hass.config.get 'esphomeyaml_version') | ||||
|     pip2 install --no-cache-dir --no-binary :all: "https://github.com/OttoWinter/esphomeyaml/archive/${esphomeyaml_version}.zip" | ||||
| fi | ||||
							
								
								
									
										62
									
								
								esphomeyaml-edge/rootfs/etc/nginx/nginx-ssl.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								esphomeyaml-edge/rootfs/etc/nginx/nginx-ssl.conf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| worker_processes  1; | ||||
| pid /var/run/nginx.pid; | ||||
| error_log stderr; | ||||
|  | ||||
| events { | ||||
|     worker_connections  1024; | ||||
| } | ||||
|  | ||||
| http { | ||||
|     access_log         stdout; | ||||
|     include            mime.types; | ||||
|     default_type       application/octet-stream; | ||||
|     sendfile           on; | ||||
|     keepalive_timeout  65; | ||||
|  | ||||
|     upstream esphomeyaml { | ||||
|         ip_hash; | ||||
|         server unix:/var/run/esphomeyaml.sock; | ||||
|     } | ||||
|     map $http_upgrade $connection_upgrade { | ||||
|         default upgrade; | ||||
|         ''      close; | ||||
|     } | ||||
|  | ||||
|     server { | ||||
|         server_name hassio.local; | ||||
|         listen %%port%% default_server ssl; | ||||
|         root /dev/null; | ||||
|  | ||||
|         ssl_certificate /ssl/%%certfile%%; | ||||
|         ssl_certificate_key /ssl/%%keyfile%%; | ||||
|         ssl_protocols TLSv1.2; | ||||
|         ssl_prefer_server_ciphers on; | ||||
|         ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA; | ||||
|         ssl_ecdh_curve secp384r1; | ||||
|         ssl_session_timeout  10m; | ||||
|         ssl_session_cache shared:SSL:10m; | ||||
|         ssl_session_tickets off; | ||||
|         ssl_stapling on; | ||||
|         ssl_stapling_verify on; | ||||
|  | ||||
|         # Redirect http requests to https on the same port. | ||||
|         # https://rageagainstshell.com/2016/11/redirect-http-to-https-on-the-same-port-in-nginx/ | ||||
|         error_page 497 https://$http_host$request_uri; | ||||
|  | ||||
|         location / { | ||||
|             proxy_redirect off; | ||||
|             proxy_pass http://esphomeyaml; | ||||
|  | ||||
|             proxy_http_version 1.1; | ||||
|             proxy_set_header Upgrade $http_upgrade; | ||||
|             proxy_set_header Connection $connection_upgrade; | ||||
|             proxy_set_header Authorization ""; | ||||
|  | ||||
|             proxy_set_header X-Real-IP $remote_addr; | ||||
|             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||
|             proxy_set_header X-Forwarded-Proto $scheme; | ||||
|             proxy_set_header Host $http_host; | ||||
|             proxy_set_header X-NginX-Proxy true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								esphomeyaml-edge/rootfs/etc/nginx/nginx.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								esphomeyaml-edge/rootfs/etc/nginx/nginx.conf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| worker_processes  1; | ||||
| pid /var/run/nginx.pid; | ||||
| error_log stderr; | ||||
|  | ||||
| events { | ||||
|     worker_connections  1024; | ||||
| } | ||||
|  | ||||
| http { | ||||
|     access_log         stdout; | ||||
|     include            mime.types; | ||||
|     default_type       application/octet-stream; | ||||
|     sendfile           on; | ||||
|     keepalive_timeout  65; | ||||
|  | ||||
|     upstream esphomeyaml { | ||||
|         ip_hash; | ||||
|         server unix:/var/run/esphomeyaml.sock; | ||||
|     } | ||||
|     map $http_upgrade $connection_upgrade { | ||||
|         default upgrade; | ||||
|         ''      close; | ||||
|     } | ||||
|  | ||||
|     server { | ||||
|         server_name hassio.local; | ||||
|         listen %%port%% default_server; | ||||
|         root /dev/null; | ||||
|  | ||||
|         location / { | ||||
|             proxy_redirect off; | ||||
|             proxy_pass http://esphomeyaml; | ||||
|  | ||||
|             proxy_http_version 1.1; | ||||
|             proxy_set_header Upgrade $http_upgrade; | ||||
|             proxy_set_header Connection $connection_upgrade; | ||||
|             proxy_set_header Authorization ""; | ||||
|  | ||||
|             proxy_set_header X-Real-IP $remote_addr; | ||||
|             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||
|             proxy_set_header X-Forwarded-Proto $scheme; | ||||
|             proxy_set_header Host $http_host; | ||||
|             proxy_set_header X-NginX-Proxy true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										9
									
								
								esphomeyaml-edge/rootfs/etc/services.d/esphomeyaml/finish
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								esphomeyaml-edge/rootfs/etc/services.d/esphomeyaml/finish
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/usr/bin/execlineb -S0 | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # Take down the S6 supervision tree when esphomeyaml fails | ||||
| # ============================================================================== | ||||
| if -n { s6-test $# -ne 0 } | ||||
| if -n { s6-test ${1} -eq 256 } | ||||
|  | ||||
| s6-svscanctl -t /var/run/s6/services | ||||
							
								
								
									
										14
									
								
								esphomeyaml-edge/rootfs/etc/services.d/esphomeyaml/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								esphomeyaml-edge/rootfs/etc/services.d/esphomeyaml/run
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # Runs the esphomeyaml dashboard | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| if hass.config.true 'leave_front_door_open'; then | ||||
|     export DISABLE_HA_AUTHENTICATION=true | ||||
| fi | ||||
|  | ||||
| hass.log.info "Starting esphomeyaml dashboard..." | ||||
| exec esphomeyaml /config/esphomeyaml dashboard --socket /var/run/esphomeyaml.sock --hassio | ||||
							
								
								
									
										9
									
								
								esphomeyaml-edge/rootfs/etc/services.d/nginx/finish
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								esphomeyaml-edge/rootfs/etc/services.d/nginx/finish
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/usr/bin/execlineb -S0 | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # Take down the S6 supervision tree when NGINX fails | ||||
| # ============================================================================== | ||||
| if -n { s6-test $# -ne 0 } | ||||
| if -n { s6-test ${1} -eq 256 } | ||||
|  | ||||
| s6-svscanctl -t /var/run/s6/services | ||||
							
								
								
									
										10
									
								
								esphomeyaml-edge/rootfs/etc/services.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								esphomeyaml-edge/rootfs/etc/services.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: esphomeyaml | ||||
| # Runs the NGINX proxy | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| hass.log.info "Starting NGINX..." | ||||
| exec nginx -g "daemon off;" | ||||
							
								
								
									
										12
									
								
								esphomeyaml-edge/rootfs/opt/pio/platformio.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								esphomeyaml-edge/rootfs/opt/pio/platformio.ini
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| ; This file allows the docker build file to install the required platformio | ||||
| ; platforms | ||||
|  | ||||
| [env:espressif8266] | ||||
| platform = espressif8266 | ||||
| board = nodemcuv2 | ||||
| framework = arduino | ||||
|  | ||||
| [env:espressif32] | ||||
| platform = espressif32 | ||||
| board = nodemcu-32s | ||||
| framework = arduino | ||||
		Reference in New Issue
	
	Block a user