Light Partition

The partition light platform allows you to combine multiple addressable light segments (like FastLED Light or NeoPixelBus Light) and/or individual lights (like RGB Light) into a single addressable light. This platform also allows splitting up an addressable light into multiple segments, so that segments can be individually controlled.

Splitting a single LED strip

If you want to split a strip, you may run into strange behavior like that the original light entity (e.g., fastled_clockless) may be conflicting with the partition. For better control over which segments of the strip will overlap each other, mark the original light as internal: true.

# Example configuration entry
light:
  - platform: partition
    name: "Partition Light 1"
    segments:
      # Use first 10 LEDs from the light with ID light1
      - id: light1
        from: 0
        to: 9

  - platform: partition
    name: "Partition Light 2"
    segments:
      # Use LEDs 11-20 from the light with ID light1
      - id: light1
        from: 10
        to: 19

  # Example for light segment source
  - platform: fastled_clockless
    id: light1
    # You may want (but don't need) this
    internal: true
    # Other settings

Joining multiple LED lights into one

# Example configuration entry
light:
  - platform: partition
    name: "Partition Light"
    segments:
      # Use first 10 LEDs from the light with ID light1
      - id: light1
        from: 0
        to: 9
      # Use first 10 LEDs from light with ID light2
      # they become LEDs 11-20 in the joined partition
      - id: light2
        from: 0
        to: 9
      # Use light3 as the 21st light in the partition
      - single_light_id: light3

  # Example for light segment source
  - platform: fastled_clockless
    id: light1
    # You may want (but don't need) this
    internal: true
    # Other settings

  # Example for light segment source
  - platform: fastled_clockless
    id: light2
    # You may want (but don't need) this
    internal: true
    # Other settings

  # Example for non-addressable light source
  - platform: rgb
    id: light3
    # You may want (but don't need) this
    internal: true
    # Other settings

Configuration variables:

  • name (Required, string): The name of the light.

  • segments (Required, list): A list of segments included in this partition.

    For addressable segments:

    • id (Required, ID): The ID of the addressable light to be controlled by this segment.

    • from (Required, int): The index of the first LED to address in the segment. Counting starts with 0, so first LED is 0.

    • to (Required, int): The index of the last LED to address in this segment.

    • reversed (Optional, boolean): Whether to reverse the order of LEDs in this segment. Defaults to false.

    For single light segments:

    • single_light_id (required, ID): The ID of a single addressable or non-addressable light. If an addressable light is specified, it will be treated as a single light in the partition.

  • id (Optional, ID): Manually specify the ID used for code generation.

  • effects (Optional, list): A list of light effects to use for this light.

  • All other options from Light.

Note

Do not use this platform to control each LED on your addressable light - the light objects have a moderate overhead and if you try to create many lights you will run out of memory quickly.

See light.addressable_set Action for that.

See Also