143 lines
4.5 KiB
Plaintext
143 lines
4.5 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" "20001133" "40FF4400" "60FFAA00" "80FFFF88" "A0FFAA44" "C0FF6600" "E0AA2200" "FF220011")
|
|
# Main daylight cycle - very slow transition
|
|
var daylight_cycle_ = animation.rich_palette_animation(engine)
|
|
daylight_cycle_.palette = 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.start()
|
|
|
|
|
|
#- 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(palette=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
|
|
-#
|