[App][Pro] iDotMatrix — BLE pixel display

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)

:backhand_index_pointing_right: ** 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!

Hi! I see you have the readme in multiple languages in a single file. Did you know that you can also create separate files for each language (README.txt for English (and all languages for which you don’t have separate files), README.de.txt for German and README.nl.txt for Dutch)? The Homey App Store automatically selects the correct version based on the user’s language

Hi! no i didnt knew that i will do that immediately! Thank you! :slight_smile:

Done :slight_smile:

Homey Cloud/Homey Bridge certainly have BLE, f.e. the MIPOW and Mi Flora apps are supported there. However, Homey Cloud does not support community apps, only official (= developed by brand, agencies or Athom) apps are allowed. There’s no technical limitations that block the use on Homey Cloud, only a software limitation that only allows official apps. In fact, I once built a service that allowed people to run community apps on Homey Cloud, which proves that it is possible to install community apps on Homey Cloud using some reverse engineered CLI communications. However, Athom didn’t like it and I had to take it down unfortunately.