IKEA Styrbar Control Z2M: Refined Dimming, Temp & 9-Color Cycle

:bulb: IKEA Styrbar Control: Refined Dimming, Temp & 9-Color Cycle

This Home Assistant Blueprint provides advanced, fine-tuned control over multiple light and switch entities using the IKEA STYRBAR remote integrated via Zigbee2MQTT.

It is based on an original concept by jtosic but has been heavily modified to include:

  • Precise Brightness Limits (Min/Max).
  • Smooth Continuous dimming and color temperature changes.
  • A user-friendly, graphical 9-Color Cycle mode.
    Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

:sparkles: Features

  • Multi-Entity Control: Control a single light, a light group, or a mix of lights and switches with a single automation.
  • Custom Brightness Limits: Define Minimum and Maximum brightness percentages (e.g., limit dimming to never go below 10% or above 90%).
  • Smooth Dimming: Continuous increase/decrease of brightness when holding the Up/Down buttons, with customizable speed and step size.
  • Precise Color Temperature Control: Continuous adjustment of color temperature when holding the Left/Right arrows, with defined Kelvin limits (Warmer/Cooler).
  • Graphical Color Cycle: Use the Left/Right click actions to cycle through 9 custom colors defined via a graphical Color Wheel selector in the automation settings.

:hammer_and_wrench: Requirements

  1. IKEA STYRBAR Remote.
  2. Zigbee2MQTT integration for the remote.
  3. A dedicated Home Assistant Input Number Helper (e.g., input_number.styrbar_color_index) to track the current color index.

:gear: Blueprint Configuration

Input Field Description Default Notes
Styrbar Switch Remote The Zigbee2MQTT device for the STYRBAR remote. (Required)
Light/Switch Entities Select the lights and/or switches to control. (Required)
Color Cycle Index Helper The input_number helper used for the color cycling index (0-8). (Required)
Left Arrow Hold (Action on release) Optional action to execute once when the Left arrow is released after a hold. (Empty) Use for secondary actions (e.g., scene setting).
Right Arrow Hold (Action on release) Optional action to execute once when the Right arrow is released after a hold. (Empty) Use for secondary actions (e.g., scene setting).
Minimum Brightness (%) The lowest brightness level the remote will dim down to (1-100%). 1 Enforced during Hold action.
Maximum Brightness (%) The highest brightness level the remote will dim up to (1-100%). 100 Enforced during Hold action.
Delay for brightness step (ms) Delay between each brightness adjustment iteration. Controls dimming speed. 50 Faster dimming.
Brightness Level step (%) The size of the step (in percent) applied during continuous dimming. 20 Larger steps mean quicker changes.
Delay for color temp step (ms) Delay between each color temperature change iteration. 70
Color Temperature step (Kelvin) The size of the step (in Kelvin) applied during continuous temperature change. 250
Color 0 to Color 8 The 9 colors in the cycle, selected via the graphical color wheel. Custom RGB Defaults

:joystick: Remote Control Mapping

Button Action Function
Center Click (ON) Toggles ON and sets lights to Max Brightness.
Center Click (OFF) Toggles OFF.
Up Button (Hold) Increases Brightness continuously, respecting the defined Max Brightness (%) limit.
Down Button (Hold) Decreases Brightness continuously, respecting the defined Min Brightness (%) limit.
Right Arrow (Click) Cycles to the Next Color in the 9-color list.
Left Arrow (Click) Cycles to the Previous Color in the 9-color list.
Right Arrow (Hold) Increases Color Temperature (Cooler) continuously, respecting the defined Max Kelvin limit.
Left Arrow (Hold) Decreases Color Temperature (Warmer) continuously, respecting the defined Min Kelvin limit.
Left/Right Arrow (Release) Executes optional custom action (configured in blueprint settings).

1 Like

Nice one, it almost works as the original Ikea setup. But somehow the colortemp doesn’t work yet for me.

I had the chance to test it on six Wi-Fi bulbs from different brands and on WLED strips I had a delay in executing these actions, as the Styrbar transmits the command for holding these buttons with a longer delay than for the brightness control. I also removed the current mode check in the temperature control block, which may help with this issue. You can re-import the project to try it out.

Thanks, I’ll try this new version
I already thought it would be something like that mode check blocking the color temperature control.