MCZ MUSA 2.0 AIR: an ESPHome remote for Home Assistant

· IT-Unsecurity ·

5 min read Original article ↗

Hey,

if you want to add your MCZ MUSA 2.0 AIR pellet stove to Home Assistant, here is how I did it. With help from ChatGPT 6 Astra (medium) in Codex, I reverse engineered my original remote and built an ESPHome replacement, a printed case and touchscreen controls.

This is the original MCZ remote I started with. If yours looks like this, compare the model and record your own signals before trying my setup:

Original MCZ remote control used with my MUSA 2.0 AIR pellet stove

1. Read the original remote

The goal was to get the stove into Home Assistant through ESPHome. First I needed to learn what its original remote actually sends. The RXB12 receiver was only for recording those commands; it is not needed in the finished remote.

Connect the RXB12 receiver to the XIAO ESP32C6: 3V3, GND and DATA on D2 / GPIO2. Install the receiver-only YAML with your own secrets.yaml, then open the ESPHome logs.

This was my breadboard setup during development, including the transmitter added later:

Breadboard development setup for the MCZ MUSA ESPHome remote

Operate the original remote one setting at a time and save repeated ON/ECO and OFF messages marked CRC OK. Mine is an MCZ 1451301200 (09). The example ID 0x000000 is a dummy — use your own recordings.

2. Connect the transmitter and install ESPHome

My first transmitter did not operate the stove. A CC1101 set to the MUSA manual’s 434.50 MHz worked. Disconnect USB and wire it as shown below, using 3.3 V for VCC, never 5 V:

CC1101 to XIAO ESP32C6 wiring, including the SPI pins and GDO0

Now use the full ESPHome YAML. Replace on_bytes and off_bytes with your complete recorded frames, including checksums. The supplied zeros and Home Assistant entity IDs are placeholders; sending stays disabled until you configure them. Changing only the ID is not enough. Validate and install through ESPHome Builder.

3. Check what the stove actually does

Test next to the stove. I removed the original remote’s batteries, sent ECO ON and checked the stove, then tested OFF separately. Here is Codex alongside the logs after both worked:

Codex conversation and ESPHome logs after successful MCZ ON and OFF tests; private details redacted

The logs show transmitted commands. I checked the actual result on the stove display:

MCZ MUSA stove display showing ON after the CC1101 command

ON worked, and OFF did too. Time to add proper controls.

4. Add the dashboard and touchscreen

Add the XIAO through the ESPHome integration. Import the two scripts and dashboard YAML from the download, adjusting the device and temperature-sensor entity IDs. My dashboard then looked like this:

Home Assistant dashboard for the MCZ MUSA with room temperature, target and heating controls

The stove has five heating levels. My plan was to heat at the highest level (5) until the target temperature, switch off for at least 15 minutes, and start again only when the room drops 2 °C below the target. That should avoid constant on/off cycling. The downloadable Home Assistant script currently does the simpler “heat once”: start it yourself, send level 5, then OFF at the target. It does not restart automatically. Home Assistant must remain running; the job status is not a stove acknowledgement.

I also added controls to my Waveshare ESP32-S3 7-inch touchscreen, which cost me about €50. Click below to see it in use alongside the doorbell and lights; the MCZ page appears around 15 seconds in:

Watch the 34-second touchscreen demo on YouTube.

Watch the MCZ touchscreen video on YouTube

Now I can control the stove from the living room. The touchscreen is optional; the HA dashboard also works on a phone.

5. Put the hardware in a case

I designed the case with Codex around the dimensions of the XIAO ESP32C6 and CC1101 transmitter. I printed the board holders first, adjusted the fit, and then printed the final case. V4.7 measures 110 × 64 × 44 mm, with USB-C and antenna access. This CAD view shows the mounts:

Final V4.7 MCZ remote enclosure with mounts for the XIAO ESP32C6 and CC1101

Print the four STLs at 100% scale in millimetres: base, lid and two clamps. Fit the boards and route the cables without pressure from the lid before closing it.

And here is the finished remote, with the lid off so you can see how the boards and wiring fit inside:

Finished MCZ MUSA ESPHome remote in its real printed enclosure, with CC1101, XIAO ESP32C6 and external antenna

The assembled remote: CC1101 at the antenna end, XIAO at the USB-C end, and the cables secured in between.

Downloads

The stove configuration, Home Assistant scripts and final enclosure are collected here. The YAML contains example values that you need to adapt to your own setup.

Parts, references and props

For the hardware you need the two boards below, an antenna, jumper wires and USB power. The RXB12 is for reading the original remote; the touchscreen is an optional addition.

Props to sfauvart’s MCZ EGO 2.0 AIR project for the protocol reference. My MUSA needed its own recordings and tests.

Hope this helps someone with the same stove!

If you are building this for your own MCZ and get stuck, I am happy to help. Leave a comment with your stove model and where you are stuck.

BR
Sebastian