Home Assistant Integration for Lelit MaraX with ESPHome

I build an integration for my Lelit MaraX Espresso Machine for Home Assistant.

This integration is based on this great Reddit article

I used an Wemos Lolin32 to connect with the PID of the MaraX. The connection is done via UART.

The coffee machine sends the following data about 4 times a second:

C123b,095,112,063,1095,1

First Character: C or S for Coffee-/Steam-Priority. Followed by the current firmware version. Second value: Actual steam temperature Third value: Target steam temperature Fourth value: Actual Heatexchanger temperature Fifth value: Remaining timer for fast heating Sixth value: Heating on/off

When data is received it is shown on the display (Actual temperature of heat exchanger and steam) and sent to Home Assistant.

ESP32 in Coffee mode

ESP32 in Coffee mode closeup

If no data is received for 5s the current time is shown instead.

ESP32 in Clock mode

In Home Assistant the data can be used to build dashboards.

ESP32 in Clock mode

ESP32 in Clock mode

Case: Wemos Lolin 32 OLED Box by pangodream - Thingiverse

The code can be found here