Journal
Field notes and technical write-ups.

APEX #6 — Open Apexpress: the whole series in a few clicks
Five episodes of hand-writing JSON and haggling with the OPA? End of the ECLYPSE APEX series: Open Apexpress, a single .exe that installs Mosquitto, Zigbee2MQTT, ChirpStack, Node-RED, Grafana and friends on the controller, through the official REST API.

APEX #5 — ChirpStack: a LoRaWAN server in the cabinet (and a feeling of déjà vu)
No subscription, no cloud: a complete LoRaWAN network server inside the controller. Fifth episode of the ECLYPSE APEX series: now that you get the principle, it's always the same thing. Or almost: distroless images have a small catch.

APEX #4 — MQTT, Node-RED, REST API: the controller that watched the fish go by
Your ECLYPSE can publish over MQTT but can't listen. Node-RED listens for it, the REST API does the dirty work, and MQTT becomes real BACnet points. Not a tutorial: what we built, what holds up, and the traps. Flow to download, link to Sylvain Montagny's work.

APEX #3 — Zigbee2MQTT: Making $15 Modules Talk to a Professional BMS
A SONOFF module driven by a commercial building automation controller? Third episode of the ECLYPSE APEX series: Zigbee2MQTT in a container, an SLZB-06MG24 Ethernet coordinator, a first pairing, and the troubleshooting kit for when you have no SSH.

APEX #2 — The Foundations: Docker on the APEX Without Getting Thrown Out by OPA
No SSH, no compose, and an OPA bouncer that turns you away without explanation. Second episode of the ECLYPSE APEX series: the rules for creating a container that gets through, the ARM64 trap, and a first Mosquitto broker running inside the controller.

APEX #1 — A Controller Running Docker, Seriously?
Distech Controls' ECLYPSE APEX is a serious HVAC controller… that also runs Docker containers. First episode of a six-part series: why I got into it, what the APEX can do, and above all the hardware limits you need to respect before breaking everything.

Open ChirpStack: I was sick of adding devices one by one, so I built the tool
Adding 300 LoRaWAN sensors one by one in ChirpStack? No. After setting up two LNS with hacked-together Python scripts, I unleashed Claude on the API and it built the tool I'd been dreaming of: bulk import, migration, tags and fleet health. Free, open source, and there's a demo.
[Rant] Modbus hell and the legend of the "manufacturer technician"
3 AHUs on BACnet, 5 PureClass units on Modbus, twenty-odd zoning valves… and two "manufacturer" commissionings that cost me half a day. Address 1 everywhere on the RS485 bus, BACnet gateway left on factory config: the story of a morning spent doing everyone else's after-sales support.

Daikin VRV in your BMS without losing your sanity: putting the CoolMaster on the grill
Two big Daikin VRV outdoor units, a whole building to take over and a client who wants it to work even when the Internet is napping. We pulled out a CoolAutomation CoolMaster, a Distech controller and a Niagara 4. I tell you everything, including the return-air sensor trap.
Niagara N4 gives you "Program is not signed"? Let's get rid of it
You compile your first Program object on a Jace 8000 and BAM — little orange dot, "Program is not signed". Don't panic: Tridium is just asking you to sign your code. I explain the why and walk you through the procedure, local station AND remote Jace.

We resurrected a heat-recovery ventilation unit dead for 3 years (killed by a drowned remote control)
For three years, a big heat-recovery ventilation unit sat there, unplugged, abandoned. The cause of the tragedy? A simple remote control that had taken on water. We started from scratch: removal of the proprietary controls, full rewiring, Distech ECY-650 controller… and a restart where we held our breath. The story of a retrofit, with its wins and its nasty surprise.
First ThingsBoard POC on Proxmox
Field report after two weeks getting ThingsBoard CE to run in a Debian 12 LXC on a Proxmox cluster. What worked first time, what got stuck.