Pivert's Blog

Minido and hass4minido: an open bridge for AnB S.A. home automation


Reading Time: 3 minutes

Minido is a home automation system built by AnB S.A. and sold in Belgium. It connects wall switches to relay and dimmer modules over an RS-485 bus. This page explains what the system is, how its bus protocol works, and where to find an open source bridge that connects Minido to Home Assistant.

What is Minido?

A Minido installation has three main parts:

  • EXICENT modules, usually called EXI, read Dallas/OneWire button IDs from the wall switches and turn them into RS-485 frames. Up to 16 EXI modules fit on one bus.
  • EXO modules are relay or dimmer output modules. Up to 16 EXO modules fit on one bus. Each EXO carries 8 output channels.
  • The PC adapter or programming keyboard listens and sends on the same RS-485 bus.

The starter kit contains a power supply, one EXICENT, two EXO8 relay modules for 16 outputs, 16 Dallas/OneWire switch addresses, and two RS-485 links. The wiring itself is unchanged by any open source software; the bus just carries small packets that can be read and written with an ordinary RS-485 or USB adapter.

The protocol in plain terms

Minido devices talk with short frames that always have the same shape:

0x23 | dst | src | len | cmd | data... | XOR

Every frame starts with the byte 0x23. The next two bytes are the destination and source addresses. Then comes a length byte, the command byte, some command-specific data bytes, and a one-byte XOR checksum that covers the command and data bytes only.

Addresses are 1-based for humans and 0-based on the wire. EXI modules use raw addresses 0x14 to 0x23, which map to EXI01 through EXI16. EXO modules use raw addresses 0x3C to 0x4B, which map to EXO01 through EXO16. The PC adapter uses address 0x00.

The most common command is 0x01. It sets all eight channels of an EXO at once. Because the module cannot change a single relay on its own, every write must carry the full state of all eight outputs. For example, a frame from the PC to EXO08 that turns the first relay on and leaves the others off looks like this:

23 43 00 0a 01 ff 00 00 00 00 00 00 00 fe

Breaking it down: 23 is the start, 43 is EXO08, 00 is the PC, 0a is the length, 01 is the command, the next eight bytes are the relay states, and fe is the XOR checksum.

Other important commands are 0x31 for button events and programming, and 0x49/0x05 for echo requests and replies during discovery. Dimmer values use 0x00 for off, 0xFF for full on, 0xFB for ramp, and 0x01 to 0x64 for explicit brightness from 1% to 100%.

Why sniffing is mandatory

The EXO design has two limits that shape every piece of Minido software. First, you cannot query an EXO to ask which relays are on. Second, you cannot change a single output; every command must rewrite all eight channels. The only way to know the current state is to listen to the bus continuously and remember what you saw. This is why the original software and the new bridge both keep an authoritative copy of the state in memory.

hass4minido: a modern bridge

hass4minido is a new open source project that connects a Minido installation to Home Assistant without changing the wiring. It replaces the old Python 2 stack with a Python 3 core that speaks MQTT natively. The core runs in Kubernetes, keeps state in memory, and publishes Home Assistant MQTT discovery configs so every relay, dimmer, shutter, and button appears as a normal entity.

The bridge uses a two-level MQTT contract. The LOW topics carry raw Minido frames between the existing ZMQ adapter and the core. The HIGH topics carry semantic state and commands that Home Assistant understands. A separate CloudNativePG database records traffic for forensics, but it never blocks control commands and history is never replayed as live state after a restart.

The first phase supports standard Minido mode only. It does not drive D2000 or MaxiDo controllers.

Where to find the code and docs

All source code, technical documentation, deployment manifests, and the CLI are in the GitLab repository:

https://gitlab.com/pivert/hass4minido

The repository contains architecture notes, a protocol reference, CLI usage, deployment instructions for Kubernetes and Flux, and a restart-safety guide. This page will stay factual and will be updated only when the underlying facts change.

Like it ?

Get notified on new posts (max 1 / month)
Soyez informés lors des prochains articles

Leave a Reply

Your email address will not be published. Required fields are marked *