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:

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:

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:

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:

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

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:

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 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:

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:

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.
- Build files ZIP: ESPHome, HA scripts/dashboard, wiring and final enclosure
- Final enclosure V4.7 — STL and STEP files
- Receiver-only YAML · Full ESPHome YAML · Example secrets
- Wiring and configuration notes
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.
- Seeed Studio XIAO ESP32C6
- CC1101 module with SMA antenna · TI CC1101 documentation
- RXB12 receiver
- My Waveshare touchscreen on Amazon · Waveshare documentation
- Final MCZ remote case V4.7 on Printables
- MCZ MUSA 2.0 manual · ESPHome CC1101 component · Home Assistant
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