Files
esphome-configs/mcu-dimmer.yaml
2025-05-02 20:23:18 +02:00

123 lines
2.9 KiB
YAML

substitutions:
device: dimmer
name: Dimmer
area: Basement
comment: "${area} | Pain cave fan"
esphome:
name: mcu-${device}
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:
board: m5stack-atom
framework:
type: esp-idf
version: 5.3.2
platform_version: 53.03.12
external_components:
- source: github://pr#7072
components: ac_dimmer
refresh: 0s
- source: components
packages:
common: !include common/common.yaml
light:
- platform: monochromatic
output: dimmer1
name: Exercise Room Fan
default_transition_length: 10s
- platform: esp32_rmt_led_strip
name: "${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