I’ve been working on a custom integration for the M-Vave SMC-PAD, a cheap BLE MIDI controller with 16 backlit pads, 8 endless encoders and 5 transport buttons. It’s usable now, so here it is.
HA connects to the pad directly over Bluetooth (local adapter or ESPHome proxy), reads the device’s own preset out of its memory, and drives the LEDs itself. No MIDI software in between, nothing in the cloud.
On the device you get an index with one pad per room, and inside a room every pad is something in that room. Tap to toggle. Hold, and the encoders point at it: the top-left one dims the lamp you’re holding, the next does colour temperature. While you turn, the grid becomes a bar showing the value, then snaps back. Left button is back, stop is home, holding left turns the top row into a room switcher.
The colours took the most thought, because the hardware has no brightness control at all. I tried every route I could think of and none of them dim. So instead of “colour says what it is, brightness says whether it’s on”, there are five colours you can tell apart from across the room, plus white and off: lit in its colour means on, white means off, dark means nothing there. “Is anything still on in the kitchen” becomes “is any pad not white”.
Beyond lights and switches you can pin readouts (a door sensor, whether someone’s home), which show their state and shudder if you press them. Scenes hold a colour for a moment when pressed. And since the encoders have no markings, turning one that does nothing draws a map on the grid of which ones are live.
Everything is configured in the UI: pages under the device, each filling from an area or a label, with optional fields to pin specific things to specific pads. HA gets a page selector, a focus sensor, event entities per pad and button, and a mvave.get_pages action that returns every page resolved, since nothing on the device says what a pad does.
Needs HA 2026.9.1+ and Bluetooth in range. The pad accepts one connection at a time. It’s on GitHub at GitHub - SDR3078/mvave-home-assistant: Turn an M-Vave SMC-PAD Bluetooth LE MIDI controller into a Home Assistant control surface: sixteen lit pads, eight encoders, no cloud. · GitHub, installable through HACS as a custom repository (submitted to the default store, but that queue is long). Version 0.1.0; there’s no UI yet for redirecting an encoder per page, and no push updates for dashboards.
If you have one of these I’d be curious whether the colours read the same on yours. Mine were picked by looking at a single unit.
Enjoy!