Files
esphome-configs/mcu-dimmer.yaml
Roman Priesol 7c9aae0a7d Fix trailing spaces and missing newlines in all mcu-*.yaml files
Bulk cleanup: remove trailing whitespace and ensure files end with a
newline. Structural issues (indentation, bracket spacing) left for
per-file fixes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-19 11:22:12 +01:00

197 lines
4.5 KiB
YAML

substitutions:
device: dimmer
name: Dimmer
area: Basement
comment: "${area} | Pain cave fan"
esphome:
name: mcu-${device}
friendly_name: ${name}
area: ${area}
comment: ${comment}
on_loop:
then:
lambda: |-
static uint32_t last_state = 0;
auto state = App.get_app_state();
if (state != last_state) {
if (state & STATUS_LED_ERROR) {
auto call = id(led).turn_on();
call.set_effect("ERROR");
call.perform();
} else if (state & STATUS_LED_WARNING) {
auto call = id(led).turn_on();
call.set_effect("BOOT");
call.perform();
} else {
auto call = id(led).turn_off();
call.perform();
}
last_state = state;
}
esp32:
variant: esp32
framework:
type: esp-idf
packages:
common: !include common/common.yaml
# fan:
# - platform: speed
# output: fan_dimmer1
# id: fan1
# name: Exercise Room
# speed_count: 5
# preset_modes:
# - 50%
# - 60%
# - 70%
# - 80%
# - 90%
# - 100%
# on_preset_set:
# then:
# - fan.turn_on:
# id: fan1
# speed: !lambda |-
# return x.c_str();
# # default_transition_length: 10s
button:
- platform: template
name: Exercise Room Fan 50 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 50%
- platform: template
name: Exercise Room Fan 60 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 60%
- platform: template
name: Exercise Room Fan 70 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 70%
- platform: template
name: Exercise Room Fan 80 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 80%
- platform: template
name: Exercise Room Fan 90 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 90%
- platform: template
name: Exercise Room Fan 100 %
on_press:
then:
- output.set_level:
id: dimmer1
level: 100%
- platform: template
name: Exercise Room Fan +10 %
on_press:
then:
- light.dim_relative:
id: fan_dimmer1
relative_brightness: 10%
- platform: template
name: Exercise Room Fan -10 %
on_press:
then:
- light.dim_relative:
id: fan_dimmer1
relative_brightness: -10%
light:
- platform: monochromatic
output: dimmer1
id: fan_dimmer1
name: Exercise Room Fan
default_transition_length: 10s
- platform: esp32_rmt_led_strip
name: LED
id: led
rgb_order: GRB
pin: 27
num_leds: 1
# rmt_channel: 0
chipset: ws2812
restore_mode: ALWAYS_OFF
effects:
- strobe:
name: "BEACON"
colors:
- state: true
red: 0%
green: 0%
blue: 50%
duration: 200ms
- state: false
duration: 200ms
- state: true
red: 0%
green: 0%
blue: 50%
duration: 200ms
- state: false
duration: 10s
- lambda:
name: "ERROR"
update_interval: 0.5s
lambda: |-
static bool state = false;
auto call = id(led).turn_on();
call.set_transition_length(500);
call.set_rgb(1, 0, 0);
if (!state) {
call.set_brightness(1);
} else {
// If using 0, it freaks Home Assistant UI.
call.set_brightness(0.01);
}
call.perform();
state = !state;
- lambda:
name: "BOOT"
update_interval: 0.5s
lambda: |-
static bool state = false;
auto call = id(led).turn_on();
call.set_transition_length(500);
call.set_rgb(0, 1, 0);
if (!state) {
call.set_brightness(1);
} else {
// If using 0, it freaks Home Assistant UI.
call.set_brightness(0.01);
}
call.perform();
state = !state;
output:
- platform: ac_dimmer
id: dimmer1
# min_power: 0.60
# zero_means_zero: true
gate_pin: 22
zero_cross_pin:
number: 25
mode: INPUT
inverted: yes