diff --git a/intern/docker_esphome-dev/files/config/04B03.ttf b/intern/docker_esphome-dev/files/config/04B03.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fe4328b6accff5ea1c2554ef0148814ff3203ca4 Binary files /dev/null and b/intern/docker_esphome-dev/files/config/04B03.ttf differ diff --git a/intern/docker_esphome-dev/files/config/C64_Pro_Mono-STYLE.ttf b/intern/docker_esphome-dev/files/config/C64_Pro_Mono-STYLE.ttf new file mode 100644 index 0000000000000000000000000000000000000000..02ff5fc4e805f747a61445a883c66c4872d8de9f Binary files /dev/null and b/intern/docker_esphome-dev/files/config/C64_Pro_Mono-STYLE.ttf differ diff --git a/intern/docker_esphome-dev/files/config/circle.gif b/intern/docker_esphome-dev/files/config/circle.gif new file mode 100644 index 0000000000000000000000000000000000000000..307c83a5391cdf343f4190c3ba317adb12ab907d Binary files /dev/null and b/intern/docker_esphome-dev/files/config/circle.gif differ diff --git a/intern/docker_esphome-dev/files/config/frekvens-dot.ttf b/intern/docker_esphome-dev/files/config/frekvens-dot.ttf new file mode 100644 index 0000000000000000000000000000000000000000..666bd31bcb55af2328baa5e51c1eb3feab405260 Binary files /dev/null and b/intern/docker_esphome-dev/files/config/frekvens-dot.ttf differ diff --git a/intern/docker_esphome-dev/files/config/tall-pixel-8x3.ttf b/intern/docker_esphome-dev/files/config/tall-pixel-8x3.ttf new file mode 100644 index 0000000000000000000000000000000000000000..55718c3f615875b476b26e72e20b135320336cf2 Binary files /dev/null and b/intern/docker_esphome-dev/files/config/tall-pixel-8x3.ttf differ diff --git a/intern/docker_esphome-dev/files/config/tall-pixel-edit.ttf b/intern/docker_esphome-dev/files/config/tall-pixel-edit.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3120fd1642e0d04b6b60bfd1f265efe88cc8ba33 Binary files /dev/null and b/intern/docker_esphome-dev/files/config/tall-pixel-edit.ttf differ diff --git a/intern/docker_esphome-dev/tasks/main.yml b/intern/docker_esphome-dev/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..a23eef10ceb1aa581df9d1a8f67effc4884dcaad --- /dev/null +++ b/intern/docker_esphome-dev/tasks/main.yml @@ -0,0 +1,47 @@ +--- + +- include_tasks: ../functions/get_secret.yml + with_items: + - { path: "{{ basedir }}/wlan_pass", length: -1 } + +- name: "create folder struct for {{ servicename }}" + file: + path: "{{ item }}" + state: "directory" + with_items: + - "{{ basedir }}/" + - "{{ basedir }}/config/" + - "{{ basedir }}/config/components/" + - "{{ basedir }}/config/components/frekvens_panel/" + +- name: "copy files for {{ servicename }}" + copy: + src: "{{ item }}" + dest: "{{ basedir }}/{{ item }}" + with_items: + - config/04B03.ttf + - config/C64_Pro_Mono-STYLE.ttf + - config/tall-pixel-8x3.ttf + - config/tall-pixel-edit.ttf + - config/frekvens-dot.ttf + register: config + +- name: "create config files for {{ servicename }}" + template: + src: "{{ item }}" + dest: "{{ basedir }}/{{ item }}" + with_items: + - docker-compose.yml + - compile.sh + register: config + +- name: "stop {{ servicename }} docker" + docker_compose: + project_src: "{{ basedir }}" + state: absent + when: config.changed + +- name: "start {{ servicename }} docker" + docker_compose: + project_src: "{{ basedir }}" + state: present diff --git a/intern/docker_esphome-dev/templates/compile.sh b/intern/docker_esphome-dev/templates/compile.sh new file mode 100644 index 0000000000000000000000000000000000000000..a06b87d4078ba241b00e7bad363fef036db319d9 --- /dev/null +++ b/intern/docker_esphome-dev/templates/compile.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Compile Image manual +# Usage: ./compile.sh <config.yml> +docker run --rm -v "{{ basedir }}/config:/config" -it esphome/esphome $1 compile diff --git a/intern/docker_esphome-dev/templates/docker-compose.yml b/intern/docker_esphome-dev/templates/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..4e26e0c0f7fe1387a9f562a89fff78ac637328d5 --- /dev/null +++ b/intern/docker_esphome-dev/templates/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3" + +services: + + app: + + image: esphome/esphome:dev + restart: always + volumes: + - "{{ basedir }}/config/:/config" + environment: + ESPHOME_DASHBOARD_USE_PING: "true" + labels: + - traefik.enable=true + - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`) + - traefik.http.routers.{{ servicename }}.entrypoints=websecure + - traefik.http.services.{{ servicename }}.loadbalancer.server.port=6052 + networks: + - default + - web + +networks: + web: + external: true diff --git a/intern/docker_esphome-dev/templates/includes/ansible.inc.yaml b/intern/docker_esphome-dev/templates/includes/ansible.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3c89b6290f9aa2f0c1ca3fed416335bb160ec9ad --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/ansible.inc.yaml @@ -0,0 +1,8 @@ + +############################################################################## +## Wichtig: +## Diese Device-Konfiguration wird über Ansible verwaltet. +## Direkte Änderungen in ESPHome sind nur temporär und müssen anschließend +## in das Ansible Repo übernommen werden +## https://gitlab.warpzone.ms/infrastruktur/ansible-warpzone/-/blob/master/intern/docker_esphome/templates/config +############################################################################## diff --git a/intern/docker_esphome-dev/templates/includes/board.d1_mini.inc.yaml b/intern/docker_esphome-dev/templates/includes/board.d1_mini.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..37380ec38924886e7c01c988cb81cd78bb6ef934 --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/board.d1_mini.inc.yaml @@ -0,0 +1,5 @@ + +esphome: + name: "{{ devicename }}" + platform: ESP8266 + board: d1_mini diff --git a/intern/docker_esphome-dev/templates/includes/board.esp01_1m.inc.yaml b/intern/docker_esphome-dev/templates/includes/board.esp01_1m.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bcb85cfffc585a508a55067f0fb924c5dfff84f3 --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/board.esp01_1m.inc.yaml @@ -0,0 +1,5 @@ + +esphome: + name: "{{ devicename }}" + platform: ESP8266 + board: esp01_1m diff --git a/intern/docker_esphome-dev/templates/includes/board.esp32-doit-devkit-v1.inc.yaml b/intern/docker_esphome-dev/templates/includes/board.esp32-doit-devkit-v1.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e1aebd3589a13b69bbdb9854d125ff5ff999cbb8 --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/board.esp32-doit-devkit-v1.inc.yaml @@ -0,0 +1,5 @@ + +esphome: + name: "{{ devicename }}" + platform: ESP32 + board: esp32doit-devkit-v1 diff --git a/intern/docker_esphome-dev/templates/includes/common.inc.yaml b/intern/docker_esphome-dev/templates/includes/common.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cf2ff845c66876b027ed9dde1cca675da8eb4446 --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/common.inc.yaml @@ -0,0 +1,35 @@ + +# WiFi settings +wifi: + ssid: "Internet-of-Shit" + password: "{{ wlan_pass }}" + use_address: "{{ devicename }}.warpzone.lan" + + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "{{ devicename }}_fallback" + +# WLAN selection in fallback mode +captive_portal: + +# Enable OTA +ota: + +# Enable logging +logger: + level: DEBUG + +# Enable integrated WebServer +# local Option seems to be broken in version 2022.10.0 +# see: https://community.home-assistant.io/t/esphome-web-server-version-2-not-working/478034 +web_server: +# local: true + +# Activates prometheus /metrics endpoint +prometheus: + +# MQTT config +mqtt: + broker: 192.168.0.201 + discovery: false + topic_prefix: "ESPHome/{{ devicename }}" diff --git a/intern/docker_esphome-dev/templates/includes/common_info.inc.yaml b/intern/docker_esphome-dev/templates/includes/common_info.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cac792ee0c90894b009ec079a1f9b2565da8f827 --- /dev/null +++ b/intern/docker_esphome-dev/templates/includes/common_info.inc.yaml @@ -0,0 +1,37 @@ + +# WiFi settings +wifi: + ssid: "Internet-of-Shit" + password: "{{ wlan_pass }}" + use_address: "{{ devicename }}.warpzone.lan" + + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "{{ devicename }}_fallback" + +# WLAN selection in fallback mode +captive_portal: + +# Enable OTA +ota: + +# Enable logging +logger: + level: INFO + logs: + sensor: INFO #fix for communication error with BME280 + +# Enable integrated WebServer +# local Option seems to be broken in version 2022.10.0 +# see: https://community.home-assistant.io/t/esphome-web-server-version-2-not-working/478034 +web_server: +# local: true + +# Activates prometheus /metrics endpoint +prometheus: + +# MQTT config +mqtt: + broker: 192.168.0.201 + discovery: false + topic_prefix: "ESPHome/{{ devicename }}" diff --git a/site.yml b/site.yml index 4ea42d1a04dcc149dbb75a3557774f7cff0a69f9..1b0a80e31fd1283cb0ab258b970e89ec49922ac4 100644 --- a/site.yml +++ b/site.yml @@ -56,6 +56,12 @@ basedir: /srv/esphome, domain: "esphome.warpzone.lan" } + - { + role: intern/docker_esphome-dev, tags: esphome-dev, + servicename: esphome-dev, + basedir: /srv/esphome-dev, + domain: "esphome-dev.warpzone.lan" + } - { role: intern/docker_heimdall, tags: heimdall, servicename: heimdall,