Neopixelbus sometimes displaying wrong pixels

Hello,

I have 3 neopixel strips of about 4.5m mounted to my pergola. The cables to the outer two are parallel to the power cable for the motors. Sometimes after using the motors some of the first pixels show a dim color, I think that the motor current induced signals to the data line of those 12V LEDs. Is there a way to tell ESPHome to send a off signal every few minutes when the LEDs are not activly used?

Thanks in advance, 4nduril

Here my light config:

light:
  - platform: neopixelbus
    type: WRGB
    variant: ws2812x
    pin: GPIO32
    method:
      type: esp32_rmt
      channel : 0
    num_leds: 126
    name: "NeoPixel Light"
    effects:
      - addressable_rainbow:
  - platform: neopixelbus
    type: WRGB
    variant: ws2812x
    pin: GPIO33
    method:
      type: esp32_rmt
      channel : 1
    num_leds: 126
    name: "NeoPixel Light2"
    effects:
      - addressable_rainbow:
  - platform: neopixelbus
    type: WRGB
    variant: ws2812x
    pin: GPIO26
    method:
      type: esp32_rmt
      channel : 2
    num_leds: 126
    name: "NeoPixel Light3"
    effects:
      - addressable_rainbow:

You could use interval component to turn off the light with a condition for “active use”.
But it would be much better to fix the wiring.

Fixing the wiring is difficult, as I had to choose a wire big enough to reduce the voltage drop over 4m even when LEDs are full on and also use a common size to have a gasket to make it water tight.
How do I fix it with the intervall component?

I think I did it, at least there is no error during compiling.

light:
  - platform: neopixelbus
    type: WRGB
    id: "np1"
    variant: ws2812x
    pin: GPIO32
    method:
      type: esp32_rmt
      channel : 0
    num_leds: 126
    name: "NeoPixel Light"
  - platform: neopixelbus
    type: WRGB
    id: "np2"
    variant: ws2812x
    pin: GPIO33
    method:
      type: esp32_rmt
      channel : 1
    num_leds: 126
    name: "NeoPixel Light2"
  - platform: neopixelbus
    type: WRGB
    id: "np3"
    variant: ws2812x
    pin: GPIO26
    method:
      type: esp32_rmt
      channel : 2
    num_leds: 126
    name: "NeoPixel Light3"

interval:
  interval: 
    minutes: 2
  then: 
    if:
      condition:
        - light.is_off: np1
      then: 
        - light.turn_off: np1
        - light.turn_off: np2
        - light.turn_off: np3

The question for me is does the light.turn_off action also sends the data to the bus even it knows it should be off already? Or do I have to set it to like 1% brightness before?

That’s good question. I don’t know. Either you try, or just add the turn on before. It’s not going to be visible.

By visible you mean noticable in the LEDs or in the Home Assistant logs? I would rather not send 2 additional commands every 2 minutes over wifi and have them logged.
I will try if it works without turning on first.

If you don’t like a component spamming your log, try to adjust it individually.

logger:
  level: INFO  
  logs:
    light: ERROR