WLED Strip as Both Indirect Living‑Room Light and Solar Battery Indicator (Built as an Amateur With Copilot’s Help)

I wanted to share a little project that has become one of my favorite parts of our smart home — not because it’s the most advanced thing I’ve ever built, but because it finally made my wife enthusiastic about home automation instead of just tolerating it.

I’m absolutely not a programmer. I’m just an amateur who enjoys tinkering, and honestly, without the help of Microsoft Copilot guiding me step by step, I would never have been able to pull this off. It felt like having a patient mentor sitting next to me, translating my ideas into something that actually works.

:bulb: My Goal

I wanted one WLED strip in our living room to serve two purposes at once:

1. Indirect ambient lighting

A Home Assistant helper (input_boolean.dressoir_led_strip) controls the background brightness:

  • Helper OFF → soft dim background [10, 10, 10]
  • Helper ON → bright background [200, 200, 200]

This makes the strip blend beautifully into the room as indirect lighting.

2. A real‑time Solarflow home battery indicator

The strip also shows:

  • Battery level (LED position)
  • Charging vs discharging (color)
  • Instant updates when the helper toggles

It reacts to:

  • Solarflow battery level
  • Battery charge/discharge power
  • The helper toggle

It’s subtle enough to be decorative, but informative enough that we can glance at it and know what the home battery is doing.

:jigsaw: Flow Diagram

:brick: Node‑RED Flow (import‑ready)

json

[
{
“id”: “solarflow_trigger”,
“type”: “server-state-changed”,
“z”: “flow1”,
“name”: “Solarflow Level Change”,
“server”: “ha_server”,
“entities”: { “entity”: [“sensor.solarflow_2400_ac_electric_level”] },
“outputOnlyOnStateChange”: true,
“wires”: [[“get_level”]]
},
{
“id”: “battery_trigger”,
“type”: “server-state-changed”,
“z”: “flow1”,
“name”: “Battery Power Change”,
“server”: “ha_server”,
“entities”: { “entity”: [“sensor.huidig_batterij_vermogen”] },
“outputOnlyOnStateChange”: true,
“wires”: [[“get_level”]]
},
{
“id”: “helper_trigger”,
“type”: “server-state-changed”,
“z”: “flow1”,
“name”: “Helper Toggle”,
“server”: “ha_server”,
“entities”: { “entity”: [“input_boolean.dressoir_led_strip”] },
“outputOnlyOnStateChange”: true,
“wires”: [[“get_level”]]
},
{
“id”: “get_level”,
“type”: “api-current-state”,
“z”: “flow1”,
“name”: “Get Level”,
“server”: “ha_server”,
“entity_id”: “sensor.solarflow_2400_ac_electric_level”,
“outputProperties”: [
{ “property”: “level”, “propertyType”: “msg”, “valueType”: “entityState” }
],
“wires”: [[“get_power”]]
},
{
“id”: “get_power”,
“type”: “api-current-state”,
“z”: “flow1”,
“name”: “Get Battery Power”,
“server”: “ha_server”,
“entity_id”: “sensor.huidig_batterij_vermogen”,
“outputProperties”: [
{ “property”: “power”, “propertyType”: “msg”, “valueType”: “entityState” }
],
“wires”: [[“get_helper”]]
},
{
“id”: “get_helper”,
“type”: “api-current-state”,
“z”: “flow1”,
“name”: “Get Helper State”,
“server”: “ha_server”,
“entity_id”: “input_boolean.dressoir_led_strip”,
“outputProperties”: [
{ “property”: “helper”, “propertyType”: “msg”, “valueType”: “entityState” }
],
“wires”: [[“build_frame”]]
},
{
“id”: “build_frame”,
“type”: “function”,
“z”: “flow1”,
“name”: “Build LED Frame”,
“func”: “const LEDS=141;\nconst level=Number(msg.level);\nconst power=Number(msg.power);\nconst helperOn=msg.helper==="on";\nconst dim=helperOn?[200,200,200]:[10,10,10];\nlet idx=Math.round((level/100)*(LEDS-1));\nidx=Math.max(0,Math.min(idx,LEDS-1));\nlet color=power>0?[153,179,141]:power<0?[255,141,149]:[194,173,114];\nlet arr=;\nfor(let i=0;i<LEDS;i++) arr.push(i,i===idx?color:dim);\nmsg.payload={seg:[{id:0,i:arr}]};\nreturn msg;”,
“wires”: [["


## 🧘 **A small note**

I’m sharing this purely as inspiration. I’m not able to provide troubleshooting or support — I’m really just an amateur who built this with Copilot’s help — but feel free to use or adapt the flow however you like.

## 🎉 **Final thoughts**

This little project made our home feel more alive, more informative, and more beautiful — and it’s the first time my wife has said, “Oh, that’s actually really nice,” about something I automated.

If it gives you ideas for your own setup, I’m happy. If not, thanks for taking a look anyway.
Here a picture of battery at +- 75% and discharging (red color), no indirect lighting active
![WLED_battery_indicator|666x500](upload://72OIm8ds417ZzG2z1gaJVZiPKFV.jpeg)