openHASP — MQTT-Driven Touchscreen Home Automation Controller with W5500 Wired Ethernet
Control home automation devices from a customizable LVGL touchscreen UI via MQTT, with W5500 wired Ethernet for stable, reliable connectivity.
📌 Overview
openHASP is an open-source firmware that turns ESP32-based touchscreen boards into customizable home automation control panels, communicating via MQTT.
Based on the HASwitchPlate project, openHASP removes the dependency on proprietary Nextion/TJC HMI displays by implementing LVGL (Light and Versatile Graphics Library) directly on the MCU. Any affordable ESP32 touchscreen board can become a wall-mounted switch plate or dashboard.
By adding a WIZnet W5500 via SPI, the ESP32 communicates with the MQTT broker over wired Ethernet — providing stable, reliable connectivity for fixed-installation smart home devices.
📌 How It Works
- User touches a button → openHASP publishes MQTT event
- Home Assistant / openHAB / Node-RED receives event and controls the device
- Platform sends state update via MQTT → openHASP updates screen UI
The W5500 serves as the wired Ethernet interface for this MQTT communication path.
📌 Key Features
- LVGL-based UI with 20+ widget types — buttons, sliders, switches, gauges, color pickers, QR codes, tabs
- JSON-based screen design — define UI in pages.jsonl, no recompilation needed
- MQTT bidirectional communication — touch events published, state updates received
- 30+ supported hardware boards — Lanbon L8, M5Stack, LilyGO, Elecrow, Waveshare, and more
- W5500 wired Ethernet — stable MQTT connectivity for fixed-installation devices
- OTA firmware update via web UI
- Home Assistant auto-discovery as MQTT device
📌 Role of WIZnet W5500
Chip: W5500
The W5500 is connected to ESP32 via SPI and provides wired Ethernet for MQTT communication. Why wired matters for smart home panels:
- Wall-mounted panels are fixed and always powered — ideal for wired connections
- WiFi instability and 2.4GHz congestion can cause response delays
- A panel controlling lights or HVAC must respond reliably every time
The W5500 contains a hardwired TCP/IP stack in silicon, offloading network processing from the ESP32.
Example SPI pin mapping:
- MISO → GPIO19, MOSI → GPIO23, SCLK → GPIO18
- CS → GPIO5, INT → GPIO4, RST → GPIO2
📌 Supported Hardware
- Lanbon L8 — 3.95" wall switch plate
- M5Stack Core2 — 2.0" portable controller
- LilyGO T-HMI — 2.8" desk controller
- Elecrow CrowPanel — 3.5"~7" various sizes
- ESP32-2432S028 (Cheap Yellow Display) — low-cost 2.8"
- Waveshare RPi LCD — 3.5"
📌 Build and Flash
Using PlatformIO:
git clone https://github.com/HASwitchPlate/openHASP
cd openHASP
cp platformio_override-template.ini platformio_override.ini
pio run -e <board-name> -t uploadOr use the web flasher at https://www.openhasp.com — no toolchain needed.
📌 GitHub Stats
- Stars: 973 | Forks: 260 | Releases: 13
- Latest: v0.7.0-rc13 | Active Discord community
- 30+ officially supported hardware boards
📌 Summary
openHASP is a complete open-source firmware for ESP32 touchscreen smart home panels. JSON-based UI design, MQTT integration, and 30+ supported boards make it ideal for home automation enthusiasts.
Adding a WIZnet W5500 replaces WiFi with wired Ethernet for MQTT — making it especially suitable for fixed-installation switch plates needing a stable, always-on connection. The ESP32 + touchscreen + W5500 combination delivers a practical smart home control panel for $5~$20 in hardware.

