diff --git a/intern/docker_esphome/templates/config/esphome_display01.yaml b/intern/docker_esphome/templates/config/esphome_display01.yaml index 197aeebdb0a71b967f3193761f8f3ad59aa81f8e..d0607770ef5dacf497598430c44fb86b11a02d08 100644 --- a/intern/docker_esphome/templates/config/esphome_display01.yaml +++ b/intern/docker_esphome/templates/config/esphome_display01.yaml @@ -3,9 +3,9 @@ {% include "/includes/ansible.inc.yaml" %} {% include "/includes/board.d1_mini.inc.yaml" %} - # force newline + + platformio_options: - upload_speed: 115200 lib_deps: - Wire # Also required by GFX. - SPI # Also required by GFX. @@ -20,6 +20,7 @@ external_components: {% include "/includes/common.inc.yaml" %} + light: - platform: monochromatic name: 'Brightness' @@ -35,10 +36,15 @@ output: number: GPIO14 inverted: True +time: + - platform: sntp + id: ntp_time + timezone: 'Europe/Berlin' + font: - file: "04B03.ttf" id: b03 - size: 16 + size: 8 display: - platform: frekvens_panel @@ -46,82 +52,7 @@ display: clock_pin: 04 data_pin: 05 id: my_display - pages: - - id: Page1 - lambda: |- - it.line(0,0,0,6); - it.line(0,0,6,0); - it.line(0,6,6,6); - it.line(6,0,6,6); - it.filled_rectangle(2,2,3,3); - it.draw_pixel_at(8,0); - it.draw_pixel_at(10,0); - it.draw_pixel_at(12,0); - it.draw_pixel_at(14,0); - it.draw_pixel_at(13,1); - it.draw_pixel_at(14,1); - it.draw_pixel_at(8,2); - it.draw_pixel_at(11,2); - it.draw_pixel_at(12,2); - it.draw_pixel_at(14,2); - it.draw_pixel_at(8,3); - it.draw_pixel_at(10,3); - it.draw_pixel_at(11,3); - it.draw_pixel_at(13,3); - it.draw_pixel_at(14,3); - it.draw_pixel_at(9,4); - it.draw_pixel_at(11,4); - it.draw_pixel_at(12,4); - it.draw_pixel_at(13,4); - it.draw_pixel_at(14,4); - it.draw_pixel_at(8,5); - it.draw_pixel_at(10,5); - it.draw_pixel_at(11,5); - it.draw_pixel_at(12,5); - it.draw_pixel_at(9,6); - it.draw_pixel_at(10,6); - it.draw_pixel_at(12,6); - it.draw_pixel_at(13,6); - it.draw_pixel_at(11,7); - it.draw_pixel_at(14,7); - it.line(0,8,5,8); - it.draw_pixel_at(10,8); - it.draw_pixel_at(14,8); - it.line(1,9,4,9); - it.draw_pixel_at(6,9); - it.draw_pixel_at(8,9); - it.draw_pixel_at(9,9); - it.draw_pixel_at(10,9); - it.draw_pixel_at(13,9); - it.draw_pixel_at(14,9); - it.draw_pixel_at(0,10); - it.draw_pixel_at(3,10); - it.line(5,10,6,10); - it.line(8,10,10,10); - it.line(12,10,13,10); - it.line(4,11,5,11); - it.line(9,11,11,11); - it.draw_pixel_at(13,11); - it.draw_pixel_at(0,12); - it.draw_pixel_at(2,12); - it.line(4,12,5,12); - it.line(8,12,9,12); - it.line(13,12,14,12); - it.line(1,13,2,13); - it.line(5,13,6,13); - it.line(9,13,11,13); - it.draw_pixel_at(13,13); - it.draw_pixel_at(0,14); - it.line(1,14,2,14); - it.draw_pixel_at(9,14); - it.line(11,14,14,14); - - id: Page2 - lambda: |- - it.strftime(4, 0, id(b03), "%H", id(ntp_time).now()); - it.strftime(4, 8, id(b03), "%M", id(ntp_time).now()); -interval: - - interval: 5s - then: - - display.page.show_next: my_display - - component.update: my_display + lambda: |- + it.strftime(4, 0, id(b03), "%H", id(ntp_time).now()); + it.strftime(4, 8, id(b03), "%M", id(ntp_time).now()); \ No newline at end of file diff --git a/intern/docker_esphome/templates/config/esphome_popcorn.yaml b/intern/docker_esphome/templates/config/esphome_popcorn.yaml index 94f26f43de068b86fa144cdc57c9df4c68d6fed3..4152eb985ad5c510cffa1bdc3bdcdb0a199053cd 100644 --- a/intern/docker_esphome/templates/config/esphome_popcorn.yaml +++ b/intern/docker_esphome/templates/config/esphome_popcorn.yaml @@ -7,6 +7,17 @@ - priority: 600 then: - display.page.show: page1 + - light.turn_on: + id: logo_led + effect: BootUp + brightness: 100% + - light.addressable_set: + id: status_led + range_from: 0 + range_to: 2 + red: 100% + green: 0% + blue: 0% - priority: 250 then: - light.addressable_set: @@ -16,6 +27,11 @@ red: 0% green: 100% blue: 0% + - switch.turn_off: turnmotor + - switch.turn_off: warmlight + - climate.control: + id: pid_heater + mode: "OFF" - priority: -100 then: - if: @@ -85,7 +101,19 @@ green: 0% blue: 0% - display.page.show: page3 -{% include "/includes/common.inc.yaml" %} + - light.turn_on: + id: logo_led + effect: "Rainbow" + brightness: 42% + on_shutdown: + priority: 600 + then: + - switch.turn_off: turnmotor + - switch.turn_off: warmlight + - climate.control: + id: pid_heater + mode: "OFF" +{% include "/includes/common_info.inc.yaml" %} spi: @@ -110,20 +138,14 @@ climate: default_target_temperature: 264 heat_output: pot_heater control_parameters: - kp: 0.49460 - ki: 0.00487 - kd: 12.56301 + kp: 0.23506 + ki: 0.03457 + kd: 0.39957 visual: min_temperature: 0 max_temperature: 275 temperature_step: 1 -button: - - platform: template - name: "PID Heater Autotune" - on_press: - - climate.pid.autotune: pid_heater - sensor: - platform: max6675 name: "Pot Temperature" @@ -179,20 +201,20 @@ sensor: output: - platform: slow_pwm - pin: GPIO12 + pin: GPIO4 id: pot_heater - period: 15s + period: 5s - platform: ledc pin: GPIO3 id: backlight_pwm switch: - platform: gpio - pin: GPIO15 + pin: GPIO12 name: "TurnMotor" id: turnmotor - platform: gpio - pin: GPIO4 + pin: GPIO15 name: "WarmLight" id: warmlight @@ -233,7 +255,7 @@ binary_sensor: blue: 0% - platform: gpio pin: - number: GPIO33 + number: GPIO19 inverted: true mode: input: true @@ -245,8 +267,8 @@ binary_sensor: - switch.turn_off: turnmotor - light.addressable_set: id: status_led - range_from: 2 - range_to: 2 + range_from: 0 + range_to: 0 red: 0% green: 0% blue: 0% @@ -255,14 +277,14 @@ binary_sensor: - switch.turn_on: turnmotor - light.addressable_set: id: status_led - range_from: 2 - range_to: 2 + range_from: 0 + range_to: 0 red: 100% green: 0% blue: 0% - platform: gpio pin: - number: GPIO19 + number: GPIO33 inverted: true mode: input: true @@ -274,8 +296,8 @@ binary_sensor: - switch.turn_off: warmlight - light.addressable_set: id: status_led - range_from: 0 - range_to: 0 + range_from: 2 + range_to: 2 red: 0% green: 0% blue: 0% @@ -284,8 +306,8 @@ binary_sensor: - switch.turn_on: warmlight - light.addressable_set: id: status_led - range_from: 0 - range_to: 0 + range_from: 2 + range_to: 2 red: 100% green: 0% blue: 0% @@ -323,7 +345,7 @@ display: cs_pin: GPIO5 dc_pin: GPIO16 reset_pin: GPIO17 - rotation: 90° + rotation: 270° pages: - id: page1 lambda: |- @@ -345,7 +367,6 @@ display: }; it.printf(0,230,id(text),TextAlign::BOTTOM_LEFT,"Target: %.1f°C",id(pid_heater).target_temperature); - time: - platform: sntp id: ntp_time @@ -358,6 +379,64 @@ light: id: backlight restore_mode: ALWAYS_ON internal: True + - platform: neopixelbus + type: GRB + variant: WS2812X + id: logo_led + pin: GPIO21 + num_leds: 8 + name: "WZ Logo LEDs" + restore_mode: ALWAYS_ON + effects: + - addressable_color_wipe: + - addressable_color_wipe: + name: Color Wipe Effect With Custom Values + colors: + - red: 100% + green: 100% + blue: 100% + num_leds: 3 + - red: 0% + green: 0% + blue: 0% + num_leds: 3 + add_led_interval: 100ms + reverse: false + - addressable_rainbow: + - addressable_rainbow: + name: Rainbow Effect With Custom Values + speed: 2 + width: 8 + - addressable_scan: + - addressable_scan: + name: Scan Effect With Custom Values + move_interval: 100ms + scan_width: 2 + - addressable_random_twinkle: + - addressable_random_twinkle: + name: Random Twinkle Effect With Custom Values + twinkle_probability: 5% + progress_interval: 32ms + - addressable_fireworks: + - addressable_fireworks: + name: Fireworks Effect With Custom Values + update_interval: 32ms + spark_probability: 10% + use_random_color: false + fade_out_rate: 120 + - addressable_color_wipe: + name: BootUp + colors: + - red: 100% + green: 0% + blue: 0% + num_leds: 8 + - red: 0% + green: 0% + blue: 0% + num_leds: 8 + add_led_interval: 100ms + reverse: False - platform: fastled_spi rgb_order: RGB chipset: WS2801 @@ -365,7 +444,7 @@ light: clock_pin: GPIO25 data_pin: GPIO26 num_leds: 3 - name: "NeoPixel Light" + name: "Status LEDs" internal: True restore_mode: ALWAYS_OFF effects: @@ -401,4 +480,4 @@ text_sensor: else { return {"ERROR see Display"}; } - update_interval: 5s \ No newline at end of file + update_interval: 5s diff --git a/intern/docker_esphome/templates/includes/common_info.inc.yaml b/intern/docker_esphome/templates/includes/common_info.inc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3c1647b70bf4bbb4c8752f047051ab9fb7d4c185 --- /dev/null +++ b/intern/docker_esphome/templates/includes/common_info.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: INFO + +# 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 }}"