Fully integrate your ESPuino RFID audio player into Home Assistant!
This custom integration lets you control ESPuino via MQTT and monitor its status directly from Home Assistant.
- Media control (play, pause, next/previous track, volume)
- Display current track information via MQTT
- Control lock, sleep timer, and other functions
- UI integration via Config Flow
- Compatible with Home Assistant 2023.x+
- A running MQTT broker
- A properly configured ESPuino device with MQTT enabled
- Home Assistant with MQTT integration set up
- Open HACS → Integrations → Three-dot menu → Custom repositories
- Add the repository:
https://github.com/patricknitsch/ESPuino_HA_Integration - Category:
Integration - After adding, search for
ESPuino Integrationin HACS and install it - Restart Home Assistant
- Download the ZIP archive
- Extract it into:
<config>/custom_components/espuino/ - Restart Home Assistant
After restarting Home Assistant:
- Go to Settings → Devices & Services → Add Integration
- Search for ESPuino Integration
- Enter a Name manually,
- You're done – entities will be created automatically
For this integration to work correctly, your settings.h file in the ESPuino firmware must be properly configured with MQTT support.
Below is an example snippet that shows how to define MQTT topics:
#ifdef MQTT_ENABLE
constexpr uint16_t mqttRetryInterval = 60;
constexpr uint8_t mqttMaxRetriesPerInterval = 1;
#define DEVICE_HOSTNAME "ESP32-ESPuino" // Default MQTT ID
constexpr const char topicSleepCmnd[] = "ESPuino/Cmnd/Sleep";
constexpr const char topicSleepState[] = "ESPuino/State/Sleep";The default MQTT ID is ESPuino. If you're using multiple ESPuino devices, each one must have a unique MQTT ID. To do this, change DEVICE_HOSTNAME in settings.h and adjust all MQTT topics accordingly.
For example:
#ifdef MQTT_ENABLE
constexpr uint16_t mqttRetryInterval = 60;
constexpr uint8_t mqttMaxRetriesPerInterval = 1;
#define DEVICE_HOSTNAME "ESP32-ESPuino_Paul" // Change Name
constexpr const char topicSleepCmnd[] = "ESPuino_Paul/Cmnd/Sleep";
constexpr const char topicSleepState[] = "ESPuino/State/Sleep";Once set up, the following entities will be available:
media_player.espuinosensor.espuino_trackswitch.espuino_sleepbutton.espuino_play_nextnumber.espuino_volume
- Integration not found: Make sure
custom_components/espuinoexists in your config folder - MQTT not working: Check your MQTT topics and broker connection
- HACS warning: Ensure you're using a tagged release (
v1.0.0, etc.)
- Initial release with media player support and MQTT integration
- DexXxter007 – Development
- biologist79 – ESPuino project (hardware & firmware)
MIT License – free to use, modify, and distribute.

