Tasmota/lib/libesp32/berry_animation/anim_examples/compiled/sunrise_sunset.be

153 lines
4.7 KiB
Plaintext

# Generated Berry code from Animation DSL
# Source: sunrise_sunset.anim
#
# This file was automatically generated by compile_all_examples.sh
# Do not edit manually - changes will be overwritten
import animation
# Sunrise Sunset - Warm color transition
# Gradual transition from night to day colors
#strip length 60
# Define time-of-day color palette
# Auto-generated strip initialization (using Tasmota configuration)
var engine = animation.init_strip()
var daylight_colors_ = bytes(
"00000011" # Night - dark blue
"20001133" # Pre-dawn
"40FF4400" # Sunrise orange
"60FFAA00" # Morning yellow
"80FFFF88" # Midday bright
"A0FFAA44" # Afternoon
"C0FF6600" # Sunset orange
"E0AA2200" # Dusk red
"FF220011" # Night - dark red
)
# Main daylight cycle - very slow transition
var daylight_cycle_ = animation.rich_palette_animation(engine)
daylight_cycle_.colors = daylight_colors_
daylight_cycle_.cycle_period = 60000
# Add sun position effect - bright spot that moves
var sun_position_ = animation.beacon_animation(engine)
sun_position_.color = 0xFFFFFFAA # Bright yellow sun
sun_position_.pos = 5 # initial position
sun_position_.beacon_size = 8 # sun size
sun_position_.slew_size = 4 # soft glow
sun_position_.priority = 10
sun_position_.pos = (def (engine)
var provider = animation.smooth(engine)
provider.min_value = 5
provider.max_value = 55
provider.duration = 30000
return provider
end)(engine) # Sun arc across sky
sun_position_.opacity = (def (engine)
var provider = animation.smooth(engine)
provider.min_value = 0
provider.max_value = 255
provider.duration = 30000
return provider
end)(engine) # Fade in and out
# Add atmospheric glow around sun
var sun_glow_ = animation.beacon_animation(engine)
sun_glow_.color = 0xFFFFCC88 # Warm glow
sun_glow_.pos = 5 # initial position
sun_glow_.beacon_size = 16 # larger glow
sun_glow_.slew_size = 8 # very soft
sun_glow_.priority = 5
sun_glow_.pos = (def (engine)
var provider = animation.smooth(engine)
provider.min_value = 5
provider.max_value = 55
provider.duration = 30000
return provider
end)(engine) # Follow sun
sun_glow_.opacity = (def (engine)
var provider = animation.smooth(engine)
provider.min_value = 0
provider.max_value = 150
provider.duration = 30000
return provider
end)(engine) # Dimmer glow
# Add twinkling stars during night phases
var stars_ = animation.twinkle_animation(engine)
stars_.color = 0xFFFFFFFF # White stars
stars_.density = 6 # density (star count)
stars_.twinkle_speed = 1000 # twinkle speed (slow twinkle)
stars_.priority = 15
stars_.opacity = (def (engine)
var provider = animation.smooth(engine)
provider.min_value = 255
provider.max_value = 0
provider.duration = 30000
return provider
end)(engine) # Fade out during day
# Start all animations
engine.add(daylight_cycle_)
engine.add(sun_position_)
engine.add(sun_glow_)
engine.add(stars_)
engine.run()
#- Original DSL source:
# Sunrise Sunset - Warm color transition
# Gradual transition from night to day colors
#strip length 60
# Define time-of-day color palette
palette daylight_colors = [
(0, 0x000011), # Night - dark blue
(32, 0x001133), # Pre-dawn
(64, 0xFF4400), # Sunrise orange
(96, 0xFFAA00), # Morning yellow
(128, 0xFFFF88), # Midday bright
(160, 0xFFAA44), # Afternoon
(192, 0xFF6600), # Sunset orange
(224, 0xAA2200), # Dusk red
(255, 0x220011) # Night - dark red
]
# Main daylight cycle - very slow transition
animation daylight_cycle = rich_palette_animation(colors=daylight_colors, cycle_period=60s)
# Add sun position effect - bright spot that moves
animation sun_position = beacon_animation(
color=0xFFFFAA # Bright yellow sun
pos=5 # initial position
beacon_size=8 # sun size
slew_size=4 # soft glow
)
sun_position.priority = 10
sun_position.pos = smooth(min_value=5, max_value=55, duration=30s) # Sun arc across sky
sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out
# Add atmospheric glow around sun
animation sun_glow = beacon_animation(
color=0xFFCC88 # Warm glow
pos=5 # initial position
beacon_size=16 # larger glow
slew_size=8 # very soft
)
sun_glow.priority = 5
sun_glow.pos = smooth(min_value=5, max_value=55, duration=30s) # Follow sun
sun_glow.opacity = smooth(min_value=0, max_value=150, duration=30s) # Dimmer glow
# Add twinkling stars during night phases
animation stars = twinkle_animation(
color=0xFFFFFF # White stars
density=6 # density (star count)
twinkle_speed=1s # twinkle speed (slow twinkle)
)
stars.priority = 15
stars.opacity = smooth(min_value=255, max_value=0, duration=30s) # Fade out during day
# Start all animations
run daylight_cycle
run sun_position
run sun_glow
run stars
-#