Hi everyone,
I’d like to share an early test release of an **iDotMatrix** integration for Homey Pro. iDotMatrix displays are cheap BLE pixel matrices (16×16, 32×32, 64×64) commonly sold on Amazon / AliExpress under names like “Divoom-style pixel display”. This app talks to them directly over Bluetooth Low Energy — no cloud, no vendor app, no account.
The protocol is ported from the excellent [python3-idotmatrix-library]( GitHub - derkalle4/python3-idotmatrix-library: This library talks to displays originally used with the iDotMatrix Android & iOS App. · GitHub ) by @derkalle4 and verified byte-for-byte against real hardware.
## Features
- **Capabilities**: On/Off, Brightness (5–100 %)
- **Flow actions**:
-
Show text (9 animation modes, color, speed)
-
Show clock (8 styles, color, date, 12/24h)
-
Countdown (start / pause / restart / disable)
-
Scoreboard (two 3-digit counters)
-
Chronograph (stopwatch)
-
Show image from URL (PNG / JPG / BMP / GIF — auto-detected)
-
Show image from a remote HTTP server on your LAN (nginx autoindex, Apache, Python `http.server`, or `index.json`)
-
Show image from the app’s built-in media store (POST endpoint for uploads)
-
Probe device capabilities (diagnostic dump to device settings)
- **Animated GIFs** are auto-resized to the display resolution frame-by-frame with nearest-neighbor scaling (preserves pixel-art crispness).
## Requirements
- **Homey Pro** (2023 or Early 2019) — Bluetooth Low Energy required
- Any iDotMatrix display advertising as `IDM-*`
Homey Bridge / Homey Cloud are **not supported** — they don’t have BLE.
## Install (test build)
** iDotMatrix | Homey**
Open that link on a phone or computer signed in to the same Homey, then *Install Test Version*.
## How to use
1. Add device → iDotMatrix Display → pick your `IDM-XXXXXX` from the list
2. On/Off and Brightness work straight from the device card
3. Build Flows around the actions listed above
4. For remote-server image hosting: open device settings → *Remote media server* → enter a URL like `http://192.168.1.50:8080/idotmatrix/\` (any directory listing works)
5. The first thing I recommend is running *Probe device capabilities* — it writes a full JSON diagnostic to your device settings so you (and I) can see exactly what your firmware supports
## Known limitations
- Built-in text font is intentionally minimal (5×7, uppercase + digits) — if you need a richer font, pass your own via `IDMProtocol.buildText(opts.font)`
- Notification ACKs are received but not yet gated against (writes are fire-and-forget); should be reliable in practice but image uploads can take a few seconds
- The secondary BLE service `0x00AE` advertised by the display is undocumented and currently unused — Probe lists it for future reverse engineering
- Image / GIF Flow cards take up to a few seconds — they run asynchronously so Homey doesn’t time-out, but the display updates after the upload finishes, not immediately
## Source & license
- **Source**: GitHub - fbnlrz/homeyidotmatrix · GitHub
- **License**: Unlicense (public domain — fork / modify / sell / do whatever)
- Built using [Claude Code]( Claude Code by Anthropic | AI Coding Agent, Terminal, IDE ) with the [dvflw/homey-app-skill]( GitHub - dvflw/homey-app-skill · GitHub ) Homey development skill by @mmcnees
## Feedback please
This is a v0.1.x — I’d love bug reports, especially:
- Pairing / discovery on firmware revisions I haven’t tested
- ACK byte sequences from *Probe device capabilities* for non-32×32 devices
- Anything you’d like as a Flow action that’s not there yet
Cheers!