This repository contains everything linked to the Smart Led Strip that I showcase on my french Youtube channel. You can find the playlist here.
A Smart Led Strip controllable via home assistant with custom PCB, box enclosure for electronics, firmware and home assistant plugin.
The Led Strip used is this one, it features 4 color channels: R, G, B, Warm White. We use the Arduino 33 IoT as our brain and some BOJACK IRLZ34N MOSFET for the power stage. Here is the schematics of the circuit:
The firmware uses PlatformIO instead of the default Arduino IDE.
IMPORTANT: before trying to build copy secret_example.h to src/secret.h and fill the missing data.
We expose a simple HTTP server that controls the LED. There is one allowed route: http://<board_ip>/command with POST method and a specific JSON querry. The querry should always have this form:
The LedStrip uses floats from 0 to 1 to represent color channel intensity. When you see "r", "g", "b" or "w" in the table, the associated value will be a number between 0 and 1.
Get the current status.
// Request
{
"method": "get_status"
}
// Response
{
"power": <0/1>,
"r": <val>,
"g": <val>,
"b": <val>,
"w": <val>
}Get various informations.
// Request
{
"method": "get_info"
}
// Response
{
"mac": <mac-address>
}Turn the power on or off.
// Request
{
"method": "set_power",
"param": {
"value": <0/1>
}
}
#### Set RGBW
Set a given color.
```jsonc
// Request
{
"method": "set_rgbw",
"param": {
"time": <transition-time-ms>, // Optional
"r": <val>,
"g": <val>,
"b": <val>,
"w": <val>
}
}
// No ResponseI desisgned a small enclosing box for the electronics using FreeCad and printed it on my 3D printer. The model can be found in the box folder.
I wrote a basic Home Assistant plugin to control the Led Strip from a friendly user interface. It can be found in echow_led_strip. To enable it, place the folder in the custom_components folder of your Home Assistant installation. You can also add this repository as a HACS custom repository.

{ "method": "<your-method>", "param": ... // Optional param for some methods }