mirror of
https://github.com/randybb/esphome-configs.git
synced 2026-01-02 19:47:29 +01:00
127 lines
3.0 KiB
YAML
127 lines
3.0 KiB
YAML
substitutions:
|
|
device: dimmer
|
|
name: Dimmer
|
|
comment: "Pain cave: Fan"
|
|
|
|
esphome:
|
|
name: mcu-${device}
|
|
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: arduino
|
|
version: 2.0.14
|
|
# version: 5.1.2
|
|
platform_version: 6.6.0
|
|
# type: esp-idf
|
|
|
|
external_components:
|
|
# - source: github://pr#3564
|
|
# refresh: 0s
|
|
# components:
|
|
# - esp32
|
|
# - wifi
|
|
# - source: github://pr#4057
|
|
# components: [fastled_base]
|
|
- 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
|