Compare commits

...

4 Commits

View File

@@ -15,6 +15,7 @@ esphome:
- priority: -100 - priority: -100
# When all is set up. Start the show. # When all is set up. Start the show.
then: then:
- delay: 5s
- script.execute: game_ready_animation - script.execute: game_ready_animation
# Variables # Variables
@@ -34,8 +35,11 @@ esp8266:
board: d1_mini_lite board: d1_mini_lite
# Enable logging (for development) # Enable logging (for development)
# NOTE: Logs on the same pin of addressable leds, so may display wrong colors when enabled
# logger: # logger:
deep_sleep:
api: api:
reboot_timeout: 0s reboot_timeout: 0s
@@ -109,6 +113,11 @@ sensor:
- 850.0 -> 100.0 - 850.0 -> 100.0
- min: - min:
send_first_at: 3 send_first_at: 3
on_value_range:
- below: 5.0
then:
- script.execute: battery_low
output: output:
- platform: esp8266_pwm - platform: esp8266_pwm
@@ -130,13 +139,17 @@ light:
rtttl: rtttl:
output: speaker output: speaker
on_finished_playback: on_finished_playback:
# - script.execute: game_ready_animation if:
- script.execute: condition:
id: set_section_color not:
section: !lambda return id(game_selected_section); - script.is_running: battery_low
r: 1.0 then:
g: 1.0 - script.execute:
b: 1.0 id: set_section_color
section: !lambda return id(game_selected_section);
r: 1.0
g: 1.0
b: 1.0
# ---- Scripts ---- # ---- Scripts ----
@@ -159,6 +172,23 @@ script:
blue: !lambda return b; blue: !lambda return b;
#transition_length: 1s; #transition_length: 1s;
- id: set_all_sections_color_animation
parameters:
r: float
g: float
b: float
then:
- repeat:
count: 6
then:
- script.execute:
id: set_section_color
section: !lambda return iteration;
r: !lambda return r;
g: !lambda return g;
b: !lambda return b;
- delay: 200ms
- id: game_ready_animation - id: game_ready_animation
then: then:
- script.execute: - script.execute:
@@ -223,9 +253,9 @@ script:
r: !lambda if (id(game_selected_section) < 3) return 0.0; else return 1.0; r: !lambda if (id(game_selected_section) < 3) return 0.0; else return 1.0;
g: !lambda if (id(game_selected_section) == 0 || id(game_selected_section) == 3 || id(game_selected_section) == 4) return 0.0; else return 1.0; g: !lambda if (id(game_selected_section) == 0 || id(game_selected_section) == 3 || id(game_selected_section) == 4) return 0.0; else return 1.0;
b: !lambda if (id(game_selected_section) % 2 == 0) return 1.0; else return 0.0; b: !lambda if (id(game_selected_section) % 2 == 0) return 1.0; else return 0.0;
- logger.log: #- logger.log:
format: "Selected section %d" # format: "Selected section %d"
args: [ 'id(game_selected_section)' ] # args: [ 'id(game_selected_section)' ]
- id: game_play_section - id: game_play_section
then: then:
- rtttl.play: - rtttl.play:
@@ -245,3 +275,21 @@ script:
default: default:
return "mario:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g,8p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,16p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16c7,16p,16c7,16c7,p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16d#6,8p,16d6,8p,16c6"; return "mario:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g,8p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,16p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16c7,16p,16c7,16c7,p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16d#6,8p,16d6,8p,16c6";
} }
- id: battery_low
then:
#- logger.log: "Executing Battery Low script"
# Turn lights on red
- script.execute:
id: set_all_sections_color_animation
r: 1.0
g: 0.0
b: 0.0
# Play battery low tune
- rtttl.play:
rtttl: Battery Low:d=8,o=6,b=600:c6,p,c5,p,2c4
- delay: 5s
- light.turn_off: hexagon_sections
- delay: 1s
# Suspend device to avoid draining battery
- deep_sleep.enter: