A flexible touchscreen display system for the Sonoff NSPanel, built on ESPHome.
All configuration is done through a built-in web frontend — a Lovelace panel
inside Home Assistant that provides a visual editor for panels, entities,
gestures, colors, and more.
Documentation · Panels Overview · Installation Guide · Configuration · FAQ · Example Configs
Get NSPanel HAUI up and running with a display dashboard in just 4 steps:
-
Install via HACS — Add the custom repository, install the integration, and restart Home Assistant.
-
Flash ESPHome — Use
esphome/install.yamlas a starting point, configure your Wi-Fi, and flash via USB or OTA. -
Add Integration — Go to Settings → Devices & Services → Add NSPanel HAUI. It auto-discovers your device.
-
Configure Panels — Open the web frontend, add panels, assign entities, and set colors to your liking.
See the Panels Overview for details.
|
Grid gridUp to 6 entities in a scrollable grid layout. Color overrides, power buttons. |
Row rowUp to 5 entities in a vertical scrollable rows. Compact, text-focused layout. |
Light lightFull light control: brightness, color temp, RGB color wheel, effects. |
|
Climate climateHVAC control: temperature, modes, fan speed, swing, presets. |
Cover coverOpen/close/stop with vertical position slider. Blinds, garages, curtains. |
Media mediaMedia player controls, volume, queue. Supports TV, speakers, receivers. |
|
Vacuum vacuumStart/stop, return to dock, fan speed, locate. Up to 6 secondary items. |
Timer timerLocal countdown timer with start/pause/stop. Uses display-local time. |
Alarm alarmNumeric keypad for alarm code entry. Arm/disarm with mode buttons. |
|
QR Code qrDisplay QR codes for Wi-Fi, URLs, or custom text. Great for guest networks. |
Weather weatherScreensaver-ready weather display. Forecast, backgrounds, info items. |
Clock clockLarge time/date display. Optional weather, entity buttons, backgrounds. |
|
ClockTwo clocktwoTime displayed as written text. Minimalist screensaver alternative. |
NSPanel HAUI ships with a fully integrated web frontend — a custom Lovelace panel that runs inside Home Assistant and provides a visual, point-and-click interface for configuring everything on your NSPanel.
| Capability | What you can do |
|---|---|
| Panel management | Add, remove and reorder panels. Each panel type (grid, light, climate, etc.) gets a visual live preview showing how it will look on the actual display. |
| Entity assignment | Pick entities from a searchable HA entity picker. Configure per-entity icons, display names, colors, and overrides. |
| Color editing | Full color picker for device-level theme colors and per-item overrides. |
| Gesture & navigation | Configure swipe directions, physical button actions, and auto-dimming behavior. |
| Multi-device | Manage multiple NSPanels from a single Lovelace panel. Switch between devices, compare configs. |
| Real-time status | Live device connection status, uptime, firmware versions, and log viewer — all from the frontend. |
The frontend is automatically available once the integration is added — no separate installation step needed. Open it from the Lovelace panel list or via the device page in Settings → Devices & Services.
Behind the scenes, the frontend communicates with the HAUI hub app through a REST API (/api/nspanel_haui/...) and the Home Assistant custom panel system. The frontend code lives in custom_components/nspanel_haui/frontend/ and is written in vanilla JavaScript using Lit for components.
All device settings — panels, entities, gestures, dimming, sleep, and colours — are managed through the Home Assistant interface.
- Configuration Overview — All available options at a glance
- Device Configuration — Sounds, screensaver, buttons, dimming
- Panel Configuration — Creating and arranging panels
- Item Configuration — Entities, icons, colors, internal items
- Device Description — Gestures, display states, hardware buttons, notifications
- Example Configs — Ready-to-use panel combinations
NSPanel HAUI uses a three-layer architecture:
- HAUI (
NSPanelHAUI, hub that runs in HA) — Reads entity states, renders display commands, manages navigation - ESP32 (ESPHome firmware) — Serial bridge between HA and the display, relays touch events
- Nextion (Touchscreen display) — Renders panels, manages widget state, handles touch input
Data flows both ways: panel configs and entity states flow down to the display, while touch events and button presses flow up to Home Assistant.
For detailed architecture information, see the Communication Overview.
- Installation Guide — Step-by-step installation instructions
- Custom Integration — How to install and set up the integration
- Configuration — Panel and device configuration reference
- Panels Overview — All available panel types and their options
- Device Description — Device behaviour, gestures, dimming, and features
- FAQ — Frequently asked questions and troubleshooting
- Troubleshooting — Diagnosing and resolving common problems
- Example Configs — Example panel configurations
- Icons Cheatsheet — Available icon codes for your panels
- Design Guidelines — Styling and panel design principles
- Communication Overview — How Hub, ESPHome, and Nextion communicate
- ESPHome Component — ESP32 firmware details and serial protocol
- Hub Component — The core integration logic
- Nextion Component — Display firmware and TFT details
Inspired by other NSPanel projects:
- NSPanel Lovelace UI by joBr99
- NSPanel HA Blueprint by Blackymas