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,