esphome-docs/components/light/partition.rst

114 lines
3.5 KiB
ReStructuredText
Raw Normal View History

2019-02-16 23:24:32 +01:00
Light Partition
===============
.. seo::
:description: Instructions for setting up light partitions.
:image: color_lens.png
The ``partition`` light platform allows you to combine multiple addressable light segments
(like :doc:`fastled` or :doc:`neopixelbus`) into a single addressable light.
2019-02-16 23:24:32 +01:00
This platform also allows splitting up an addressable lights into multiple segments, so that
segments can be individually controlled.
Splitting a single LED strip
----------------------------
2019-02-16 23:24:32 +01:00
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``.
.. code-block:: yaml
# 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 strips into one
------------------------------------
2019-02-16 23:24:32 +01:00
.. code-block:: yaml
# Example configuration entry
light:
- platform: partition
name: "Partition Light"
segments:
# Use first 10 LEDs from the light with ID light1
2019-02-16 23:24:32 +01:00
- id: light1
from: 0
to: 9
# Use first 10 LEDs from light with ID light2
# they become LEDs 11-20 in the joined partition
2019-02-16 23:24:32 +01:00
- id: light2
from: 0
to: 9
# Example for light segment source
- platform: fastled_clockless
id: light1
# You may want (but don't need) this
internal: true
# Other settings
2019-02-16 23:24:32 +01:00
# Example for light segment source
- platform: fastled_clockless
id: light2
# You may want (but don't need) this
internal: true
2019-02-16 23:24:32 +01:00
# Other settings
Configuration variables:
------------------------
- **name** (**Required**, string): The name of the light.
- **segments** (**Required**, list): The segments this light partition controls
- **id** (**Required**, :ref:`config-id`): The ID of the light this segment belongs to.
- **from** (**Required**, int): 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** (**Required**, int): Whether to reverse the LEDs in this segment.
2019-02-16 23:24:32 +01:00
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
- **effects** (*Optional*, list): A list of :ref:`light effects <light-effects>` to use for this light.
2019-02-17 12:28:17 +01:00
2019-05-12 22:44:59 +02:00
- All other options from :ref:`Light <config-light>`.
2019-02-16 23:24:32 +01:00
.. 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.
2019-05-12 22:44:59 +02:00
See :ref:`light-addressable_set_action` for that.
2019-02-16 23:24:32 +01:00
See Also
--------
- :doc:`/components/light/index`
- :doc:`/components/light/fastled`
2019-02-16 23:24:32 +01:00
- :doc:`/components/light/neopixelbus`
2019-05-12 22:44:59 +02:00
- :apiref:`partition/light_partition.h`
2019-02-16 23:24:32 +01:00
- :ghedit:`Edit`