LED Strip to show power consumption

Has anyone ever used WLED in order to show how much power is being consumed (or generated be solar). Im moving into a new house and i thought it would be a great idea to mount a short amount of LED strip with WLED hooked up and have the strip light up like a power meter.

My thought being for power consumed it would a great visual indicator to show if you are using too much, or for power generated it would be a great way to show when you have a lot of energy and could start to use large appliances (dishwasher, washing machine etc).

Has anyone done this and have any code they could share?

WLED is probably not the best fit for this. You would likely be better off using ESPHome.

Thank, I’m happy to use either really! Just wondering if anyone has done something like it?

I have implemented a similar thing, but my goal was showing the CO2 level. It can easily be adapted to showing other sensors though.

This is how it works:

  1. QuinLED Dig UNO led controller that runs WLED
  2. Has a 144 LED adressable led strip attached
  3. An automation in Home Assistant listens for CO2 changes (which I gather using a Netatmo sensor)
  4. It sends a request directly to the WLED JSON api, sending exact LED ranges with color/brightness information (using the Home Assistant integration won’t work, you can only divide a strip into max 16 segments, which means you cannot do pixel-by-pixel control)
  5. LED strip shows the new configuration

You can find my config here: https://github.com/NLthijs48/home-assistant/tree/master/features/meters (definitions.yaml contains a REST command, automations/living_room_co2.yaml contains the api response body formatting).

Because pictures say more than words:





The meter lights up until the exact pixel it should, the above are just some examples :smiley:

I’m happy to help if you have any questions

3 Likes

I have just been reading through your code. It looks Great and very comprehensive, looks like it would be very easy to modify to use as energy consumption / generation!

1 Like

So i have tried to modify the code - You have a lot of items in there which i dont think i need and therefore removed (detection if someone is actually in the room etc). Below is the updated code my WLED is not updating though. I only have 26 LED’s on this strip (not sure if thats why).

alias: Energy Usage LED
description: Display a meter bar for the house energy usage
mode: single
id: energy_usage_light_bar # To enable debug
trigger:
  # Update when the energy usage changes
  - platform: state
    entity_id: sensor.shelly_em_mains_power_0
action:
  # - alias: "Turn on when living room in use, else turn off"
  #   # choose:
  #   sequence:
  - service: rest_command.wled_update
    data:
      payload: '{"on": true}'
  - service: rest_command.wled_update
    data:
      payload: >-
        {##### INPUTS #####}
        {# Use the value of the entity that has triggered the automation #}
        {% set sensor_entity_id = trigger.entity_id %}
        {% set sensor_entity_id = "sensor.shelly_em_mains_power_0" %}
        {# Value that should fill the complete meter #}
        {% set max_value = 1400 %}
        {# Number of leds in the strip #}
        {% set led_count = 26 %}
        {##### CALCULATION #####}
        {# Fraction of the meter that should be on #}
        {% set sensor_value = states(sensor_entity_id) | float(default=0) %}
        {% set fraction = sensor_value / max_value %}
        {% set brightness = 50 %}
        {# LED parts: normal for the active bar, then highlight the exact value, then lowlight the inactive part #}
        {% set highlight_end_leds = (fraction * led_count) | int %}
        {% set normal_end_leds = highlight_end_leds - 3 %}
        {% set lowlight_start_leds = highlight_end_leds %}
        {# Resulting segments to send to WLED #}
        {# - Start with turning everything off #}
        {% set result = namespace(segments=[0, led_count, [0,0,0]]) %}
        {##### HELPERS #####}
        {# Add a segment, while a possible scaledown in brightness #}
        {# - Reversed start/end because strip is upside down #}
        {% macro segment(start_led, end_led, color, scaledown=1) -%}
          {%
            set result.segments = result.segments + [
              led_count - end_led,
              led_count - start_led,
              [
                (color[0] / scaledown) | round(0, 'ceil'),
                (color[1] / scaledown) | round(0, 'ceil'),
                (color[2] / scaledown) | round(0, 'ceil'),
              ]
            ]
          %}
        {%- endmacro %}
        {# List of color blocks, references sensor values #}
        {%
          set blocks = [
            {"start": 0, "end": 800, "color": [0, 255, 0]},
            {"start": 800, "end": 1200, "color": [255, 255, 0]},
            {"start": 1200, "end": max_value, "color": [255, 0, 0]},
          ]
        %}
        {% for block in blocks %}
          {# Convert sensor values of the block to led counts #}
          {% set block_start_leds = (block.start / max_value * led_count) | round %}
          {% set block_end_leds = (block.end / max_value * led_count) | round %}
          {# NORMAL segment #}
          {% if normal_end_leds >= block_start_leds %}
            {{
              segment(
                [block_start_leds, 0] | max,
                [block_end_leds, normal_end_leds] | min,
                block.color,
                scaledown = 6
              )
            }}
          {% endif %}
          {# HIGHLIGHT segment: If the highlight overlaps this block, add a highlight #}
          {% if ([block_start_leds, normal_end_leds] | max) <= ([block_end_leds, highlight_end_leds] | min) %}
          {{
            segment(
              [block_start_leds, normal_end_leds] | max,
              [block_end_leds, highlight_end_leds] | min,
              block.color,
              scaledown = 3
            )
          }}
          {% endif %}
          {# LOWLIGHT segment: when a part of this block is inactive #}
          {% if lowlight_start_leds <= block_end_leds %}
            {{
              segment(
                [block_start_leds, lowlight_start_leds] | max,
                [block_end_leds, led_count] | min,
                block.color,
                scaledown = 12
              )
            }}
          {% endif %}
        {% endfor %}
        {# Print results, passing it to the rest command #}
        {# - Use full segment brightness, but lower strip brightness #}
        {# - Turn on/off based on living room usage #}
        {{
          {
            "bri": brightness,
            "seg": {
              "bri": 255,
              "i": result.segments
            }
          }
        }}

Great to see that it fits your project as well.

There are a couple of things that are good to check:

  1. Which WLED version are you running? I’m running 0.12.0, if you are running something older you probably need to update because the individual LED control is quite a new feature.
  2. Does just sending '{"on": true}' or '{"on": false}' work? Because if that does not work yet then the rest_command.wled_update might not be set up correctly (or something else in WLED not configured)
  3. What kind of segments do you have configured in WLED? It should have just 1 segment that contains all the LEDs
  4. You can paste your template in the Home assistant devtools to see what it renders, does the result make sense? Or can you post it here?
  5. Did you check the automation debugger in home assistant? Any template errors in there?

I get this output from your modified version (with one of my sensors, and the trigger.entity_id line removed):

{
  "bri": 50,
  "seg": {
    "bri": 255,
    "i": [
      0,
      26,
      [
        0,
        0,
        0
      ],
      17,
      26,
      [
        0,
        43,
        0
      ],
      14,
      17,
      [
        0,
        85,
        0
      ],
      11,
      14,
      [
        0,
        22,
        0
      ],
      4,
      11,
      [
        22,
        22,
        0
      ],
      0,
      4,
      [
        22,
        0,
        0
      ]
    ]
  }
}

I got it working now!! its fantastic! Some of the “scaledown” options were causing the LED’s to be so dim i couldn’t tell they were on! so i have adjusted that!
Full automation here:

alias: Energy Usage LED
description: Display a meter bar for the house energy usage
mode: single
id: energy_usage_light_bar # To enable debug
trigger:
  # Update when the energy usage changes
  - platform: state
    entity_id: sensor.shelly_em_mains_power_0
action:
  # - alias: "Turn on when living room in use, else turn off"
  #   # choose:
  #   sequence:
  - service: rest_command.wled_update
    data:
      payload: '{"on": true}'
  - service: rest_command.wled_update
    data:
      payload: >-
        {##### INPUTS #####}
        {# Use the value of the entity that has triggered the automation #}
        {% set sensor_entity_id = trigger.entity_id %}
        {% set sensor_entity_id = "sensor.shelly_em_mains_power_0" %}
        {# Value that should fill the complete meter #}
        {% set max_value = 900 %}
        {# Number of leds in the strip #}
        {% set led_count = 26 %}
        {##### CALCULATION #####}
        {# Fraction of the meter that should be on #}
        {% set sensor_value = states(sensor_entity_id) | float(default=0) %}
        {% set fraction = sensor_value / max_value %}
        {% set brightness = 100 %}
        {# LED parts: normal for the active bar, then highlight the exact value, then lowlight the inactive part #}
        {% set highlight_end_leds = (fraction * led_count) | int %}
        {% set normal_end_leds = highlight_end_leds - 3 %}
        {% set lowlight_start_leds = highlight_end_leds %}
        {# Resulting segments to send to WLED #}
        {# - Start with turning everything off #}
        {% set result = namespace(segments=[0, led_count, [0,0,0]]) %}
        {##### HELPERS #####}
        {# Add a segment, while a possible scaledown in brightness #}
        {# - Reversed start/end because strip is upside down #}
        {% macro segment(start_led, end_led, color, scaledown=1) -%}
          {%
            set result.segments = result.segments + [
              led_count - end_led,
              led_count - start_led,
              [
                (color[0] / scaledown) | round(0, 'ceil'),
                (color[1] / scaledown) | round(0, 'ceil'),
                (color[2] / scaledown) | round(0, 'ceil'),
              ]
            ]
          %}
        {%- endmacro %}
        {# List of color blocks, references sensor values #}
        {%
          set blocks = [
            {"start": 0, "end": 400, "color": [0, 255, 0]},
            {"start": 400, "end": 700, "color": [255, 255, 0]},
            {"start": 700, "end": max_value, "color": [255, 0, 0]},
          ]
        %}
        {% for block in blocks %}
          {# Convert sensor values of the block to led counts #}
          {% set block_start_leds = (block.start / max_value * led_count) | round %}
          {% set block_end_leds = (block.end / max_value * led_count) | round %}
          {# NORMAL segment #}
          {% if normal_end_leds >= block_start_leds %}
            {{
              segment(
                [block_start_leds, 0] | max,
                [block_end_leds, normal_end_leds] | min,
                block.color,
                scaledown = 1
              )
            }}
          {% endif %}
          {# HIGHLIGHT segment: If the highlight overlaps this block, add a highlight #}
          {% if ([block_start_leds, normal_end_leds] | max) <= ([block_end_leds, highlight_end_leds] | min) %}
          {{
            segment(
              [block_start_leds, normal_end_leds] | max,
              [block_end_leds, highlight_end_leds] | min,
              block.color,
              scaledown = 1
            )
          }}
          {% endif %}
          {# LOWLIGHT segment: when a part of this block is inactive #}
          {% if lowlight_start_leds <= block_end_leds %}
            {{
              segment(
                [block_start_leds, lowlight_start_leds] | max,
                [block_end_leds, led_count] | min,
                block.color,
                scaledown = 2
              )
            }}
          {% endif %}
        {% endfor %}
        {# Print results, passing it to the rest command #}
        {# - Use full segment brightness, but lower strip brightness #}
        {# - Turn on/off based on living room usage #}
        {{
          {
            "bri": brightness,
            "seg": {
              "bri": 255,
              "i": result.segments
            }
          }
        }}

Great!

The scaledown really depends on how dim your LEDS can go and the type of diffuser is on it. My strip is pretty bright by default and needs to be dimmed quite a lot to be subtle enough when it is dark outside :smiley:

I see that you have the highlight and normal parts with the same scaledown, you might want to try 0.7 or so for the normal part if you like to have an extra bright part around the current value, depends on the look you like to have

Ive been thinking about this set up. I think it would be super cool if you could have two led Strips. one for energy production from solar and one from energy consumption from gird ( which can go both positive and negative).

Then you will be able to see if you are consuming the solar you are producing or not.

1 Like

Yeah that is totally possible, you can setup as much of these meters as you wish.

Indeed really nice to see if solar generation or house usage is higher in a glance by placing two of these meters side-by-side.

Hello
I’m trying to borrow your code but I don’t understand where I should change to my wled somewhere?
I want to make a corresponding bar but with the electricity price instead.

You need to add a rest_command to your configuration.yaml like this, and you need to change the ip address in there to the ip address of your WLED driver.

Then you need to add this automation that uses the rest_command to update the LED strip.

Let me know if that works for you

Hello @thijs
I solve the first part but still struggle to understand where to enter which sensor as I keep getting UndefinedError: ‘trigger’ is undefined when I test in templates. I have a sensor called sensor.nordpool and there are 20 leds in my loop.

alias: Elpris Ledmätare
description: Visa elkostnad
trigger:
  - type: value
    platform: device
    device_id: 2b3096feed9980dc3f2088fdf7bd5f11
    entity_id: sensor.nordpool
    domain: sensor
    above: 0
    below: 20
action:
  - service: rest_command.wled_update
    data:
      payload: "{\"on\": true}"
  - service: rest_command.wled_update
    data:
      payload: >-
        {##### INPUTS #####} {# Use the value of the entity that has triggered
        the automation #} {% set sensor_entity_id = trigger.entity_id %} {% set
        sensor_entity_id = "sensor.nordpool" %} {# Value that should fill the
        complete meter 5} {% set max_value = 900 %} {# Number of leds in the
        strip #} {% set led_count = 26 %} {##### CALCULATION #####} {# Fraction
        of the meter that should be on #} {% set sensor_value = 
        states(sensor_entity_id) | float(default=0) %} {% set fraction =
        sensor_value / max_value %} {% set brightness = 100 %} {# LED parts: 20
        normal for the active bar, then highlight the exact value, then lowlight
        the inactive part #} {% set highlight_end_leds = (fraction * led_count)
        | int %} {% set normal_end_leds =  highlight_end_leds - 3 %} {% set
        lowlight_start_leds = highlight_end_leds %} {# Resulting segments to
        send to WLED #} {# - Start with turning everything off #} {% set result
        = namespace(segments=[0, led_count, [0,0,0]]) %} {##### HELPERS #####}
        {# Add a segment, while a possible scaledown in brightness #} {# -
        Reversed start/end because strip is upside down #} {% macro
        segment(start_led, end_led, color, scaledown=3) -%}
          {%
            set result.segments = result.segments + [
              led_count - end_led,
              led_count - start_led,
              [
                (color[0] / scaledown) | round(0, 'ceil'),
                (color[1] / scaledown) | round(0, 'ceil'),
                (color[2] / scaledown) | round(0, 'ceil'),
              ]
            ]
          %}
        {%- endmacro %} {# List of color blocks, references sensor values #} {%
          set blocks = [
            {"start": 0, "end": 400, "color": [0, 255, 0]},
            {"start": 400, "end": 700, "color": [255, 255, 0]},
            {"start": 700, "end": max_value, "color": [255, 0, 0]},
          ]
        %} {% for block in blocks %}
          {# Convert sensor values of the block to led counts #}
          {% set block_start_leds = (block.start / max_value * led_count) | round %}
          {% set block_end_leds = (block.end / max_value * led_count) | round %}
          {# NORMAL segment #}
          {% if normal_end_leds >= block_start_leds %}
            {{
              segment(
                [block_start_leds, 0] | max,
                [block_end_leds, normal_end_leds] | min,
                block.color,
                scaledown = 1
              )
            }}
          {% endif %}
          {# HIGHLIGHT segment: If the highlight overlaps this block, add a highlight #}
          {% if ([block_start_leds, normal_end_leds] | max) <= ([block_end_leds, highlight_end_leds] | min) %}
          {{
            segment(
              [block_start_leds, normal_end_leds] | max,
              [block_end_leds, highlight_end_leds] | min,
              block.color,
              scaledown = 1
            )
          }}
          {% endif %}
          {# LOWLIGHT segment: when a part of this block is inactive #}
          {% if lowlight_start_leds <= block_end_leds %}
            {{
              segment(
                [block_start_leds, lowlight_start_leds] | max,
                [block_end_leds, led_count] | min,
                block.color,
                scaledown = 2
              )
            }}
          {% endif %}
        {% endfor %} {# Print results, passing it to the rest command #} {# -
        Use full segment brightness, but lower strip brightness #} {# - Turn
        on/off based on living room usage #} {{
          {
            "bri": brightness,
            "seg": {
              "bri": 255,
              "i": result.segments
            }
          }
        }}
mode: single

now I’ve got it to light up, now I just have to put in the values at which it should light up yellow, etc. where do I do it?

Ah good, first you need to set the INPUTS at the top of the payload section:

  • Set max_value the the sensor value that should be the maximum value that fits on your display, so maybe 5 if you want it to be 5 euro
  • Set led_count to the number of leds your strip has, so 20 in your case

Then for the colored sections you need to change the part after set blocks. The first one is green, second orange, last red. The numbers used for start and end are sensor values, so those are electricity prices in your case. You can add more blocks if you like, just keep them in the correct order and make sure they don’t overlap.

If you got that configured and it is not working, show me your latest config and I can check it. You can also try pasting the template block into the template devtools to see what data it generates for WLED, you can also show me that for debugging.

Hello
Got it working now I think though but feel that a large part of my leds are red even if I test with less cost. Maybe it should be like that, but there is only one joint that is green and one that is yellow, the rest are red.

when I post it in a template I get the error: UndefinedError: ‘trigger’ is undefined so something is probably wrong.

alias: Elpris Ledmätare
description: Visa elkostnad
trigger:
  - platform: state
    entity_id:
      - sensor.nordpool
action:
  - service: rest_command.wled_update
    data:
      payload: "{\"on\": true}"
  - service: rest_command.wled_update
    data:
      payload: >-
        {##### INPUTS #####} {# Use the value of the entity that has triggered
        the automation #} {% set sensor_entity_id = trigger.entity_id %} {% set
        sensor_entity_id = "sensor.nordpool" %} {# Value that should fill the
        complete meter #}  {% set max_value = 5 %} {# Number of leds in the
        strip #} {% set led_count = 20 %} {##### CALCULATION #####} {# Fraction
        of the meter that should be on #}  {% set sensor_value = 
        states(sensor_entity_id) | float(default=0) %}  {% set fraction =
        sensor_value / max_value %} {% set brightness = 100 %} {# LED parts:
        normal for the active bar, then highlight the exact value, then lowlight
        the inactive part #}  {% set highlight_end_leds = (fraction * led_count)
        | int %} {% set normal_end_leds =  highlight_end_leds - 3 %} {% set
        lowlight_start_leds = highlight_end_leds %} {# Resulting segments to
        send to WLED #} {# - Start with turning everything off #} {% set result
        = namespace(segments=[0, led_count, [0,0,0]]) %} {##### HELPERS #####}
        {# Add a segment, while a possible scaledown in brightness #} {# -
        Reversed start/end because strip is upside down #} {% macro
        segment(start_led, end_led, color, scaledown=3) -%}
          {%
            set result.segments = result.segments + [
              led_count - end_led,
              led_count - start_led,
              [
                (color[0] / scaledown) | round(0, 'ceil'),
                (color[1] / scaledown) | round(0, 'ceil'),
                (color[2] / scaledown) | round(0, 'ceil'),
              ]
            ]
          %}
        {%- endmacro %} {# List of color blocks, references sensor values #} {%
          set blocks = [
            {"start": 0, "end": 0.3, "color": [0, 255, 0]},
            {"start": 0.3, "end": 0.5, "color": [255, 255, 0]},
            {"start": 0.5, "end": 1.5, "color": [255, 102, 0]},
            {"start": 1.5, "end": max_value, "color": [255, 0, 0]},
          ]
        %} {% for block in blocks %}
          {# Convert sensor values of the block to led counts #}
          {% set block_start_leds = (block.start / max_value * led_count) | round %}
          {% set block_end_leds = (block.end / max_value * led_count) | round %}
          {# NORMAL segment #}
          {% if normal_end_leds >= block_start_leds %}
            {{
              segment(
                [block_start_leds, 0] | max,
                [block_end_leds, normal_end_leds] | min,
                block.color,
                scaledown = 1
              )
            }}
          {% endif %}
          {# HIGHLIGHT segment: If the highlight overlaps this block, add a highlight #}
          {% if ([block_start_leds, normal_end_leds] | max) <= ([block_end_leds, highlight_end_leds] | min) %}
          {{
            segment(
              [block_start_leds, normal_end_leds] | max,
              [block_end_leds, highlight_end_leds] | min,
              block.color,
              scaledown = 1
            )
          }}
          {% endif %}
          {# LOWLIGHT segment: when a part of this block is inactive #}
          {% if lowlight_start_leds <= block_end_leds %}
            {{
              segment(
                [block_start_leds, lowlight_start_leds] | max,
                [block_end_leds, led_count] | min,
                block.color,
                scaledown = 2
              )
            }}
          {% endif %}
        {% endfor %} {# Print results, passing it to the rest command #} {# -
        Use full segment brightness, but lower strip brightness #} {# - Turn
        on/off based on living room usage #} {{
          {
            "bri": brightness,
            "seg": {
              "bri": 255,
              "i": result.segments
            }
          }
        }}
mode: single

I played with it a bit more and got it looking ok.
Question is it possible to turn off the parts that are now dimmed?

alias: Elpris Ledmätare
description: Visa elkostnad
trigger:
  - platform: state
    entity_id:
      - sensor.nordpool
action:
  - service: rest_command.wled_update
    data:
      payload: "{\"on\": true}"
  - service: rest_command.wled_update
    data:
      payload: >-
        {##### INPUTS #####}  {# Use the value of the entity that has triggered
        the automation #}  {% set sensor_entity_id = trigger.entity_id %}  {%
        set sensor_entity_id = "sensor.nordpool" %}  {# Value that should fill
        the complete meter #}   {% set max_value = 2 %}  {# Number of leds in
        the strip #}  {% set led_count = 20 %}  {##### CALCULATION #####}  {#
        Fraction of the meter that should be on #}   {% set sensor_value =
        states(sensor_entity_id) | float(default=0) %}   {% set fraction =
        sensor_value / max_value %}  {% set brightness = 70 %}  {# LED
        parts:normal for the active bar, then highlight the exact value, then
        lowlight the inactive part #}   {% set highlight_end_leds = (fraction *
        led_count) | int %}  {% set normal_end_leds =  highlight_end_leds - 50
        %} {% set lowlight_start_leds = highlight_end_leds %}  {# Resulting
        segments to send to WLED #}  {# - Start with turning everything off #} 
        {% set result = namespace(segments=[0, led_count, [0,0,0]]) %}  {#####
        HELPERS #####} {# Add a segment, while a possible scaledown in
        brightness #}  {# - Reversed start/end because strip is upside down #} 
        {% macro segment(start_led, end_led, color, scaledown=3) -%}
          {%
            set result.segments = result.segments + [
              led_count - end_led,
              led_count - start_led,
              [
                (color[0] / scaledown) | round(0, 'ceil'),
                (color[1] / scaledown) | round(0, 'ceil'),
                (color[2] / scaledown) | round(0, 'ceil'),
              ]
            ]
          %}
        {%- endmacro %} {# List of color blocks, references sensor values #} {%
          set blocks = [
            {"start": 0, "end": 0.5, "color": [0, 255, 0]},
            {"start": 0.5, "end": 1, "color": [255, 255, 0]},
            {"start": 1, "end": 1.5, "color": [255, 126, 165]},
            {"start": 1.5, "end": max_value, "color": [255, 0, 0]},
          ]
        %} {% for block in blocks %}
          {# Convert sensor values of the block to led counts #}
          {% set block_start_leds = (block.start / max_value * led_count) | round %}
          {% set block_end_leds = (block.end / max_value * led_count) | round %}
          {# NORMAL segment #}
          {% if normal_end_leds >= block_start_leds %}
            {{
              segment(
                [block_start_leds, 0] | max,
                [block_end_leds, normal_end_leds] | min,
                block.color,
                scaledown = 1
              )
            }}
          {% endif %}
          {# HIGHLIGHT segment: If the highlight overlaps this block, add a highlight #}
          {% if ([block_start_leds, normal_end_leds] | max) <= ([block_end_leds, highlight_end_leds] | min) %}
          {{
            segment(
              [block_start_leds, normal_end_leds] | max,
              [block_end_leds, highlight_end_leds] | min,
              block.color,
              scaledown = 1
            )
          }}
          {% endif %}
          {# LOWLIGHT segment: when a part of this block is inactive #}
          {% if lowlight_start_leds <= block_end_leds %}
            {{
              segment(
                [block_start_leds, lowlight_start_leds] | max,
                [block_end_leds, led_count] | min,
                block.color,
                scaledown = 2
              )
            }}
          {% endif %}
        {% endfor %} {# Print results, passing it to the rest command #} {# -
        Use full segment brightness, but lower strip brightness #} {# - Turn
        on/off based on living room usage #} {{
          {
            "bri": brightness,
            "seg": {
              "bri": 255,
              "i": result.segments
            }
          }
        }}
mode: single

Nice!

It is not originally designed with sensor values using decimals in mind, but should work OK indeed.

If you want to turn off the dimmed part you can change the segment() part below the LOWLIGHT comment. Either you can set scaledown to 1000 or so to essentially turn of the LEDs, or instead of block.color use [0, 0, 0] so that a black color is used (meaning it will turn off that part).

Thanks for all the help I got.

1 Like