Loading...
This module enables Companion to control a WLED instance using a websocket connection.
Requires Companion 4.3 or later.
Pick your WLED controller from the WLED device list, which shows WLED controllers discovered on the network, or choose Manual and type in its IP address. If you want to control more than one WLED controller, simply add this module several times to your companion instance.
Segments are listed by their WLED name when they have one. When you use an expression for a Segment option, the first segment is 0.
Increasing and decreasing brightness stops at 1 so the lights stay on, unless "Allow dimming to off" is checked. On a rotary encoder, use Increase on the right turn and Decrease on the left turn.
Effect, palette and preset names are loaded from the WLED over HTTP when the module connects. Preset names reload automatically when presets are saved on the WLED.
The Presets tab has ready-made buttons for this connection:
The preset and segment buttons follow the WLED: when you save, rename or delete a preset, or change the segments, the list updates. A button you already placed for a preset that was later deleted keeps working as a button, but its label shows $NA until you remove it or point it at another preset.
The examples use wled, the default connection label; if you gave the connection another label, use that instead.
$(wled:power) - Global Power$(wled:brightness) - Global Brightness$(wled:preset) - Current Preset$(wled:preset_name) - Current Preset Name$(wled:preset_N_name) - Name of saved preset N (e.g. $(wled:preset_3_name))$(wled:playlist) / $(wled:playlist_name) - Running playlist and its name (none when no playlist is running)$(wled:transition) - Transition time in seconds$(wled:nightlight) - Whether the night light is on$(wled:sync_send) / $(wled:sync_receive) - Whether sync sending / receiving is on$(wled:nightlight_remaining) - Seconds left on the night light. WLED only reports this when something changes, so turn on Poll for updates to keep it counting down$(wled:version) - WLED Version$(wled:processor) - WLED Processor (chip model, e.g. ESP32-D0WD-V3)$(wled:led_count) - LED Count$(wled:current) - Current (mA)$(wled:max_current) - Max Current (mA)$(wled:name) - WLED Name$(wled:free_heap) - Free Heap$(wled:uptime) - Uptime$(wled:ip_address) - IP AddressFor each segment (replace X with segment number, starting at 1):
$(wled:segment_X_name) - Segment X Name (its WLED name, or "Segment X")$(wled:segment_X_power) - Segment X Power$(wled:segment_X_brightness) - Segment X Brightness$(wled:segment_X_color) - Segment X Color (primary color as #RRGGBB)$(wled:segment_X_cct) - Segment X Color Temperature (0 = warm, 255 = cold)$(wled:segment_X_freeze), …_reverse, …_mirror - Segment X options$(wled:segment_X_effect) - Segment X Effect$(wled:segment_X_effect_name) - Segment X Effect Name$(wled:segment_X_palette) - Segment X Palette$(wled:segment_X_palette_name) - Segment X Palette Name$(wled:segment_X_effect_speed) - Segment X Effect Speed$(wled:segment_X_effect_intensity) - Segment X Effect Intensity$(wled:segment_X_effect_custom_1) - Segment X Effect Custom Slider 1$(wled:segment_X_effect_custom_2) - Segment X Effect Custom Slider 2$(wled:segment_X_effect_custom_3) - Segment X Effect Custom Slider 3$(wled:segment_X_speed_label), …_intensity_label, …_custom_1_label, …_custom_2_label, …_custom_3_label - What the current effect calls each slider (for example "Duty cycle"); empty when the effect doesn't use that slider