From 764e9ef1b2717c38eec15683d9a35194d976b406 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 16 Apr 2026 10:51:42 +0000 Subject: [PATCH 1/2] Add segment name field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expose the user-defined segment name ("n") from the WLED API. Co-Authored-By: Kamil BreguĊ‚a Co-Authored-By: Claude Opus 4.6 (1M context) --- src/wled/models.py | 3 +++ tests/__snapshots__/test_models.ambr | 10 +++++----- tests/fixtures/rgb.json | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/wled/models.py b/src/wled/models.py index 99319381..0080ff7d 100644 --- a/src/wled/models.py +++ b/src/wled/models.py @@ -231,6 +231,9 @@ class Segment(BaseModel): Stop has preference, so if it is included, length is ignored. """ + name: str | None = field(default=None, metadata=field_options(alias="n")) + """User-defined name of the segment.""" + on: bool | None = field(default=None) """The on/off state of the segment.""" diff --git a/tests/__snapshots__/test_models.ambr b/tests/__snapshots__/test_models.ambr index bbcdbed8..6e3383e1 100644 --- a/tests/__snapshots__/test_models.ambr +++ b/tests/__snapshots__/test_models.ambr @@ -1,16 +1,16 @@ # serializer version: 1 # name: test_device_fixture[cct] - Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(2024, 7, 23, 16, 31, 12, tzinfo=datetime.timezone.utc), total=983, used=20), free_heap=164804, ip='127.0.0.1', leds=Leds(count=178, fps=0, light_capabilities=, max_power=0, max_segments=32, power=0, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED CCT light', palette_count=75, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=79769), version=, websocket=1, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=255, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=2, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[0, 0, 0, 255], secondary=[0, 0, 0, 0], tertiary=[0, 0, 0, 0]), effect_id=0, intensity=128, length=178, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=178, cct=53)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='Rotozoomer'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) + Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(2024, 7, 23, 16, 31, 12, tzinfo=datetime.timezone.utc), total=983, used=20), free_heap=164804, ip='127.0.0.1', leds=Leds(count=178, fps=0, light_capabilities=, max_power=0, max_segments=32, power=0, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED CCT light', palette_count=75, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=79769), version=, websocket=1, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=255, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=2, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[0, 0, 0, 255], secondary=[0, 0, 0, 0], tertiary=[0, 0, 0, 0]), effect_id=0, intensity=128, length=178, name=None, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=178, cct=53)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='Rotozoomer'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) # --- # name: test_device_fixture[rgb] - Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(2024, 6, 19, 20, 9, 47, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=198384, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=515, segment_light_capabilities=[, ]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGB Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=966), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-43, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=15, on=True, palette_id=0, reverse=False, segment_id=0, selected=False, speed=32, start=0, stop=15, cct=127), 1: Segment(brightness=255, clones=-1, color=Color(primary=[255, 170, 0], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=3, intensity=64, length=15, on=True, palette_id=1, reverse=True, segment_id=1, selected=True, speed=16, start=15, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) + Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(2024, 6, 19, 20, 9, 47, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=198384, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=515, segment_light_capabilities=[, ]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGB Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=966), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-43, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=15, name='Ceiling', on=True, palette_id=0, reverse=False, segment_id=0, selected=False, speed=32, start=0, stop=15, cct=127), 1: Segment(brightness=255, clones=-1, color=Color(primary=[255, 170, 0], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=3, intensity=64, length=15, name=None, on=True, palette_id=1, reverse=True, segment_id=1, selected=True, speed=16, start=15, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) # --- # name: test_device_fixture[rgb_single_segment] - Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGB Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=30, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=32, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) + Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGB Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=30, name=None, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=32, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) # --- # name: test_device_fixture[rgb_websocket] - Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED WebSocket', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=0, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=30, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) + Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED WebSocket', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=0, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[127, 172, 255], secondary=[0, 0, 0], tertiary=[0, 0, 0]), effect_id=0, intensity=128, length=30, name=None, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) # --- # name: test_device_fixture[rgbw] - Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGBW Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[255, 0, 0, 139], secondary=[0, 0, 0, 0], tertiary=[0, 0, 0, 0]), effect_id=0, intensity=128, length=30, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) + Device(info=Info(architecture='esp32', arduino_core_version='v3.3.6-16-gcc5440f6a2', brand='WLED', build='2405180', effect_count=187, filesystem=Filesystem(last_modified=datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), total=983, used=12), free_heap=196960, ip='127.0.0.1', leds=Leds(count=30, fps=5, light_capabilities=, max_power=850, max_segments=32, power=536, segment_light_capabilities=[]), live_ip='', live_mode='', live=False, mac_address='aabbccddeeff', name='WLED RGBW Light', palette_count=71, product='FOSS', udp_port=21324, uptime=datetime.timedelta(seconds=461), version=, websocket=None, wifi=Wifi(bssid='AA:AA:AA:AA:AA:BB', channel=11, rssi=-44, signal=100)), state=State(brightness=128, nightlight=Nightlight(duration=60, mode=, on=False, target_brightness=0), on=True, playlist_id=None, preset_id=None, segments={0: Segment(brightness=255, clones=-1, color=Color(primary=[255, 0, 0, 139], secondary=[0, 0, 0, 0], tertiary=[0, 0, 0, 0]), effect_id=0, intensity=128, length=30, name=None, on=True, palette_id=0, reverse=False, segment_id=0, selected=True, speed=128, start=0, stop=30, cct=127)}, sync=UDPSync(receive=True, receive_groups=, send=False, send_groups=), transition=7, live_data_override=), effects={0: Effect(effect_id=0, name='Solid'), 1: Effect(effect_id=1, name='Blink'), 2: Effect(effect_id=2, name='Breathe'), 3: Effect(effect_id=3, name='Wipe'), 4: Effect(effect_id=4, name='Wipe Random'), 5: Effect(effect_id=5, name='Random Colors'), 6: Effect(effect_id=6, name='Sweep'), 7: Effect(effect_id=7, name='Dynamic'), 8: Effect(effect_id=8, name='Colorloop'), 9: Effect(effect_id=9, name='Rainbow'), 10: Effect(effect_id=10, name='Scan'), 11: Effect(effect_id=11, name='Scan Dual'), 12: Effect(effect_id=12, name='Fade'), 13: Effect(effect_id=13, name='Theater'), 14: Effect(effect_id=14, name='Theater Rainbow'), 15: Effect(effect_id=15, name='Running'), 16: Effect(effect_id=16, name='Saw'), 17: Effect(effect_id=17, name='Twinkle'), 18: Effect(effect_id=18, name='Dissolve'), 19: Effect(effect_id=19, name='Dissolve Rnd'), 20: Effect(effect_id=20, name='Sparkle'), 21: Effect(effect_id=21, name='Sparkle Dark'), 22: Effect(effect_id=22, name='Sparkle+'), 23: Effect(effect_id=23, name='Strobe'), 24: Effect(effect_id=24, name='Strobe Rainbow'), 25: Effect(effect_id=25, name='Strobe Mega'), 26: Effect(effect_id=26, name='Blink Rainbow'), 27: Effect(effect_id=27, name='Android'), 28: Effect(effect_id=28, name='Chase'), 29: Effect(effect_id=29, name='Chase Random'), 30: Effect(effect_id=30, name='Chase Rainbow'), 31: Effect(effect_id=31, name='Chase Flash'), 32: Effect(effect_id=32, name='Chase Flash Rnd'), 33: Effect(effect_id=33, name='Rainbow Runner'), 34: Effect(effect_id=34, name='Colorful'), 35: Effect(effect_id=35, name='Traffic Light'), 36: Effect(effect_id=36, name='Sweep Random'), 37: Effect(effect_id=37, name='Chase 2'), 38: Effect(effect_id=38, name='Aurora'), 39: Effect(effect_id=39, name='Stream'), 40: Effect(effect_id=40, name='Scanner'), 41: Effect(effect_id=41, name='Lighthouse'), 42: Effect(effect_id=42, name='Fireworks'), 43: Effect(effect_id=43, name='Rain'), 44: Effect(effect_id=44, name='Tetrix'), 45: Effect(effect_id=45, name='Fire Flicker'), 46: Effect(effect_id=46, name='Gradient'), 47: Effect(effect_id=47, name='Loading'), 48: Effect(effect_id=48, name='Rolling Balls'), 49: Effect(effect_id=49, name='Fairy'), 50: Effect(effect_id=50, name='Two Dots'), 51: Effect(effect_id=51, name='Fairytwinkle'), 52: Effect(effect_id=52, name='Running Dual'), 53: Effect(effect_id=53, name='RSVD'), 54: Effect(effect_id=54, name='Chase 3'), 55: Effect(effect_id=55, name='Tri Wipe'), 56: Effect(effect_id=56, name='Tri Fade'), 57: Effect(effect_id=57, name='Lightning'), 58: Effect(effect_id=58, name='ICU'), 59: Effect(effect_id=59, name='Multi Comet'), 60: Effect(effect_id=60, name='Scanner Dual'), 61: Effect(effect_id=61, name='Stream 2'), 62: Effect(effect_id=62, name='Oscillate'), 63: Effect(effect_id=63, name='Pride 2015'), 64: Effect(effect_id=64, name='Juggle'), 65: Effect(effect_id=65, name='Palette'), 66: Effect(effect_id=66, name='Fire 2012'), 67: Effect(effect_id=67, name='Colorwaves'), 68: Effect(effect_id=68, name='Bpm'), 69: Effect(effect_id=69, name='Fill Noise'), 70: Effect(effect_id=70, name='Noise 1'), 71: Effect(effect_id=71, name='Noise 2'), 72: Effect(effect_id=72, name='Noise 3'), 73: Effect(effect_id=73, name='Noise 4'), 74: Effect(effect_id=74, name='Colortwinkles'), 75: Effect(effect_id=75, name='Lake'), 76: Effect(effect_id=76, name='Meteor'), 77: Effect(effect_id=77, name='Meteor Smooth'), 78: Effect(effect_id=78, name='Railway'), 79: Effect(effect_id=79, name='Ripple'), 80: Effect(effect_id=80, name='Twinklefox'), 81: Effect(effect_id=81, name='Twinklecat'), 82: Effect(effect_id=82, name='Halloween Eyes'), 83: Effect(effect_id=83, name='Solid Pattern'), 84: Effect(effect_id=84, name='Solid Pattern Tri'), 85: Effect(effect_id=85, name='Spots'), 86: Effect(effect_id=86, name='Spots Fade'), 87: Effect(effect_id=87, name='Glitter'), 88: Effect(effect_id=88, name='Candle'), 89: Effect(effect_id=89, name='Fireworks Starburst'), 90: Effect(effect_id=90, name='Fireworks 1D'), 91: Effect(effect_id=91, name='Bouncing Balls'), 92: Effect(effect_id=92, name='Sinelon'), 93: Effect(effect_id=93, name='Sinelon Dual'), 94: Effect(effect_id=94, name='Sinelon Rainbow'), 95: Effect(effect_id=95, name='Popcorn'), 96: Effect(effect_id=96, name='Drip'), 97: Effect(effect_id=97, name='Plasma'), 98: Effect(effect_id=98, name='Percent'), 99: Effect(effect_id=99, name='Ripple Rainbow'), 100: Effect(effect_id=100, name='Heartbeat'), 101: Effect(effect_id=101, name='Pacifica'), 102: Effect(effect_id=102, name='Candle Multi'), 103: Effect(effect_id=103, name='Solid Glitter'), 104: Effect(effect_id=104, name='Sunrise'), 105: Effect(effect_id=105, name='Phased'), 106: Effect(effect_id=106, name='Twinkleup'), 107: Effect(effect_id=107, name='Noise Pal'), 108: Effect(effect_id=108, name='Sine'), 109: Effect(effect_id=109, name='Phased Noise'), 110: Effect(effect_id=110, name='Flow'), 111: Effect(effect_id=111, name='Chunchun'), 112: Effect(effect_id=112, name='Dancing Shadows'), 113: Effect(effect_id=113, name='Washing Machine'), 114: Effect(effect_id=114, name='RSVD'), 115: Effect(effect_id=115, name='Blends'), 116: Effect(effect_id=116, name='TV Simulator'), 117: Effect(effect_id=117, name='Dynamic Smooth'), 118: Effect(effect_id=118, name='Spaceships'), 119: Effect(effect_id=119, name='Crazy Bees'), 120: Effect(effect_id=120, name='Ghost Rider'), 121: Effect(effect_id=121, name='Blobs'), 122: Effect(effect_id=122, name='Scrolling Text'), 123: Effect(effect_id=123, name='Drift Rose'), 124: Effect(effect_id=124, name='Distortion Waves'), 125: Effect(effect_id=125, name='Soap'), 126: Effect(effect_id=126, name='Octopus'), 127: Effect(effect_id=127, name='Waving Cell'), 128: Effect(effect_id=128, name='Pixels'), 129: Effect(effect_id=129, name='Pixelwave'), 130: Effect(effect_id=130, name='Juggles'), 131: Effect(effect_id=131, name='Matripix'), 132: Effect(effect_id=132, name='Gravimeter'), 133: Effect(effect_id=133, name='Plasmoid'), 134: Effect(effect_id=134, name='Puddles'), 135: Effect(effect_id=135, name='Midnoise'), 136: Effect(effect_id=136, name='Noisemeter'), 137: Effect(effect_id=137, name='Freqwave'), 138: Effect(effect_id=138, name='Freqmatrix'), 139: Effect(effect_id=139, name='GEQ'), 140: Effect(effect_id=140, name='Waterfall'), 141: Effect(effect_id=141, name='Freqpixels'), 142: Effect(effect_id=142, name='RSVD'), 143: Effect(effect_id=143, name='Noisefire'), 144: Effect(effect_id=144, name='Puddlepeak'), 145: Effect(effect_id=145, name='Noisemove'), 146: Effect(effect_id=146, name='Noise2D'), 147: Effect(effect_id=147, name='Perlin Move'), 148: Effect(effect_id=148, name='Ripple Peak'), 149: Effect(effect_id=149, name='Firenoise'), 150: Effect(effect_id=150, name='Squared Swirl'), 151: Effect(effect_id=151, name='RSVD'), 152: Effect(effect_id=152, name='DNA'), 153: Effect(effect_id=153, name='Matrix'), 154: Effect(effect_id=154, name='Metaballs'), 155: Effect(effect_id=155, name='Freqmap'), 156: Effect(effect_id=156, name='Gravcenter'), 157: Effect(effect_id=157, name='Gravcentric'), 158: Effect(effect_id=158, name='Gravfreq'), 159: Effect(effect_id=159, name='DJ Light'), 160: Effect(effect_id=160, name='Funky Plank'), 161: Effect(effect_id=161, name='RSVD'), 162: Effect(effect_id=162, name='Pulser'), 163: Effect(effect_id=163, name='Blurz'), 164: Effect(effect_id=164, name='Drift'), 165: Effect(effect_id=165, name='Waverly'), 166: Effect(effect_id=166, name='Sun Radiation'), 167: Effect(effect_id=167, name='Colored Bursts'), 168: Effect(effect_id=168, name='Julia'), 169: Effect(effect_id=169, name='RSVD'), 170: Effect(effect_id=170, name='RSVD'), 171: Effect(effect_id=171, name='RSVD'), 172: Effect(effect_id=172, name='Game Of Life'), 173: Effect(effect_id=173, name='Tartan'), 174: Effect(effect_id=174, name='Polar Lights'), 175: Effect(effect_id=175, name='Swirl'), 176: Effect(effect_id=176, name='Lissajous'), 177: Effect(effect_id=177, name='Frizzles'), 178: Effect(effect_id=178, name='Plasma Ball'), 179: Effect(effect_id=179, name='Flow Stripe'), 180: Effect(effect_id=180, name='Hiphotic'), 181: Effect(effect_id=181, name='Sindots'), 182: Effect(effect_id=182, name='DNA Spiral'), 183: Effect(effect_id=183, name='Black Hole'), 184: Effect(effect_id=184, name='Wavesins'), 185: Effect(effect_id=185, name='Rocktaves'), 186: Effect(effect_id=186, name='Akemi')}, palettes={0: Palette(name='Default', palette_id=0), 1: Palette(name='* Random Cycle', palette_id=1), 2: Palette(name='* Color 1', palette_id=2), 3: Palette(name='* Colors 1&2', palette_id=3), 4: Palette(name='* Color Gradient', palette_id=4), 5: Palette(name='* Colors Only', palette_id=5), 6: Palette(name='Party', palette_id=6), 7: Palette(name='Cloud', palette_id=7), 8: Palette(name='Lava', palette_id=8), 9: Palette(name='Ocean', palette_id=9), 10: Palette(name='Forest', palette_id=10), 11: Palette(name='Rainbow', palette_id=11), 12: Palette(name='Rainbow Bands', palette_id=12), 13: Palette(name='Sunset', palette_id=13), 14: Palette(name='Rivendell', palette_id=14), 15: Palette(name='Breeze', palette_id=15), 16: Palette(name='Red & Blue', palette_id=16), 17: Palette(name='Yellowout', palette_id=17), 18: Palette(name='Analogous', palette_id=18), 19: Palette(name='Splash', palette_id=19), 20: Palette(name='Pastel', palette_id=20), 21: Palette(name='Sunset 2', palette_id=21), 22: Palette(name='Beach', palette_id=22), 23: Palette(name='Vintage', palette_id=23), 24: Palette(name='Departure', palette_id=24), 25: Palette(name='Landscape', palette_id=25), 26: Palette(name='Beech', palette_id=26), 27: Palette(name='Sherbet', palette_id=27), 28: Palette(name='Hult', palette_id=28), 29: Palette(name='Hult 64', palette_id=29), 30: Palette(name='Drywet', palette_id=30), 31: Palette(name='Jul', palette_id=31), 32: Palette(name='Grintage', palette_id=32), 33: Palette(name='Rewhi', palette_id=33), 34: Palette(name='Tertiary', palette_id=34), 35: Palette(name='Fire', palette_id=35), 36: Palette(name='Icefire', palette_id=36), 37: Palette(name='Cyane', palette_id=37), 38: Palette(name='Light Pink', palette_id=38), 39: Palette(name='Autumn', palette_id=39), 40: Palette(name='Magenta', palette_id=40), 41: Palette(name='Magred', palette_id=41), 42: Palette(name='Yelmag', palette_id=42), 43: Palette(name='Yelblu', palette_id=43), 44: Palette(name='Orange & Teal', palette_id=44), 45: Palette(name='Tiamat', palette_id=45), 46: Palette(name='April Night', palette_id=46), 47: Palette(name='Orangery', palette_id=47), 48: Palette(name='C9', palette_id=48), 49: Palette(name='Sakura', palette_id=49), 50: Palette(name='Aurora', palette_id=50), 51: Palette(name='Atlantica', palette_id=51), 52: Palette(name='C9 2', palette_id=52), 53: Palette(name='C9 New', palette_id=53), 54: Palette(name='Temperature', palette_id=54), 55: Palette(name='Aurora 2', palette_id=55), 56: Palette(name='Retro Clown', palette_id=56), 57: Palette(name='Candy', palette_id=57), 58: Palette(name='Toxy Reaf', palette_id=58), 59: Palette(name='Fairy Reaf', palette_id=59), 60: Palette(name='Semi Blue', palette_id=60), 61: Palette(name='Pink Candy', palette_id=61), 62: Palette(name='Red Reaf', palette_id=62), 63: Palette(name='Aqua Flash', palette_id=63), 64: Palette(name='Yelblu Hot', palette_id=64), 65: Palette(name='Lite Light', palette_id=65), 66: Palette(name='Red Flash', palette_id=66), 67: Palette(name='Blink Red', palette_id=67), 68: Palette(name='Red Shift', palette_id=68), 69: Palette(name='Red Tide', palette_id=69), 70: Palette(name='Candy2', palette_id=70)}, playlists={}, presets={}) # --- diff --git a/tests/fixtures/rgb.json b/tests/fixtures/rgb.json index 50a82eb7..686957e2 100644 --- a/tests/fixtures/rgb.json +++ b/tests/fixtures/rgb.json @@ -34,6 +34,7 @@ "bri": 255, "cct": 127, "set": 0, + "n": "Ceiling", "col": [ [127, 172, 255], [0, 0, 0], From beffe7c91f9df438928ebdd330e07fad9ae7d7b0 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 16 Apr 2026 11:22:19 +0000 Subject: [PATCH 2/2] Fix beta version comparison rejecting valid firmware Pre-release builds of the minimum required version (e.g. 0.14.0-b1) were incorrectly rejected because AwesomeVersion considers them less than the release version. Compare using the base version (major.minor.patch) so pre-release suffixes don't cause false rejections. Fixes #1529 Co-Authored-By: Ken Sedgwick Co-Authored-By: Claude Opus 4.6 (1M context) --- src/wled/models.py | 19 +++++++++++++------ tests/test_models.py | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/wled/models.py b/src/wled/models.py index 0080ff7d..eab0c7e4 100644 --- a/src/wled/models.py +++ b/src/wled/models.py @@ -730,13 +730,20 @@ class Device(BaseModel): @classmethod def __pre_deserialize__(cls, d: dict[Any, Any]) -> dict[Any, Any]: """Pre deserialize hook for Device object.""" - if (version := d.get("info", {}).get("ver")) and version < MIN_REQUIRED_VERSION: - msg = ( - f"Unsupported firmware version {version}. " - f"Minimum required version is {MIN_REQUIRED_VERSION}. " - f"Please update your WLED device." + if version_str := d.get("info", {}).get("ver"): + version = get_awesome_version(version_str) + # Compare base version (major.minor.patch) to allow pre-release + # builds (e.g. 0.14.0-b1) of the minimum required version. + base = get_awesome_version( + f"{version.major}.{version.minor}.{version.patch}" ) - raise WLEDUnsupportedVersionError(msg) + if base < MIN_REQUIRED_VERSION: + msg = ( + f"Unsupported firmware version {version_str}. " + f"Minimum required version is {MIN_REQUIRED_VERSION}. " + f"Please update your WLED device." + ) + raise WLEDUnsupportedVersionError(msg) if _effects := d.get("effects"): d["effects"] = { diff --git a/tests/test_models.py b/tests/test_models.py index 212befab..09fe906a 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -625,6 +625,22 @@ def test_device_unsupported_version() -> None: Device.from_dict(data) +def test_device_beta_of_minimum_version_allowed() -> None: + """Test that a beta of the minimum required version is accepted.""" + data = full_device_data() + data["info"]["ver"] = "0.14.0-b1" + device = Device.from_dict(data) + assert device.info.version is not None + + +def test_device_beta_below_minimum_version_rejected() -> None: + """Test that a beta below the minimum required version is rejected.""" + data = full_device_data() + data["info"]["ver"] = "0.13.0-b1" + with pytest.raises(WLEDUnsupportedVersionError): + Device.from_dict(data) + + def test_device_null_palettes() -> None: """Test that None palettes results in empty dict.""" data = full_device_data()