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.
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.
Flow Diagram
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

