Back to List
CommunitySmart HomeMQTTLVGL

openHASP

OpenNextion openHASP turns your screen into a touch control panel for Home Assistant. No coding needed—just edit a JSON config file following the official format to add buttons for lights, air conditioning, scenes, and more. You can freely adjust their positions and styles. Flash the firmware to the screen, connect to Wi‑Fi and MQTT, and it becomes a fully touch‑controlled smart home dashboard. All operations sync with Home Assistant in real time, and the status updates instantly.

Preview

openhasp-01

Hardware Requirements

Development Boards

ONX2432G028
ONX2432G028Required
ONX3248G035
ONX3248G035Required

Accessories

Nextion Dual MIC Board
Nextion Dual MIC BoardOptional
Nextion BOX Speaker
Nextion BOX SpeakerOptional
Nextion IO Adapter V2
Nextion IO Adapter V2Optional

Getting Started

Feature Overview

FeatureDescription
JSON‑configured UIFreely define the screen layout by writing simple JSON files – no programming required, easy to get started.
Rich UI componentsDesign freely with buttons, switches, sliders, arc controls, labels, color pickers, dropdown menus, and more.
MQTT protocol communicationAll operations and statuses are transmitted via MQTT, compatible with Home Assistant, openHAB, and other open‑source smart home platforms.
Web‑based device managementProvides a web management interface with online UI preview, file editing, network configuration, firmware upgrades, etc.
OTA firmware updatesSupports over‑the‑air upgrades without re‑flashing.

Quick Start

Preparation
  • 1 × supported OpenNextion ESP32‑S3 smart display
  • 1 × USB data cable
  • 1 × running Home Assistant instance
  • 1 × Windows/Mac computer
  • 2.4 GHz WiFi network

Before starting, ensure the USB cable supports data transfer and maintain a stable connection between the board and your computer.

Flashing the Firmware
  1. Click Flash Online at the top of the page.
  2. Select the OpenNextion device model you are using.
  3. Choose the corresponding serial port when prompted in the browser.
  4. Wait for erasing, writing, and verification to complete. Do not unplug the USB cable during this process.

After successful flashing, the board will automatically restart.

Device WiFi Provisioning

After the firmware is flashed, you can configure the network using either of the following methods:

  • On‑device configuration: Simply tap the screen and enter the Wi‑Fi credentials directly on the screen.
Guide image 1 Guide image 2
  • AP hotspot configuration: The device displays its AP name and password. Connect to the hotspot and then configure the Wi‑Fi via a web page to complete the setup.
Guide image 3

Once the network is configured, the device will display its assigned IP address at every boot, making it easy to access later.

Guide image 4
Device Web Backend

After network configuration is complete, enter the IP address shown on the device into your browser to access the web management backend. The backend mainly offers the following features:

FunctionDescription
HASP DesignUpload and edit page layout JSON files online.
ScreenshotTake and save a screenshot of the current UI preview.
InformationView device status and MQTT connection status.
ConfigurationConfigure Wi‑Fi, MQTT, HTTP, and other connection settings.
Firmware UpdatePerform online OTA upgrades.
File EditorA simple file management system that allows uploading resource files and modifying page layouts in real time via the web.
Guide image 5
Integrating with Home Assistant
Install and Configure HACS

Before integrating openHASP into Home Assistant, you need to install HACS (Home Assistant Community Store).

*Detailed tutorial:__ https://hacs.xyz/docs/use/configuration/basic/

  • Install HACS: Go to Home Assistant → Settings → App, click [App Store], and add the repository URL:

https://github.com/hacs/addons

  • Configure HACS: Go to Home Assistant → Devices & Services → Add Integration, search for HACS, and complete the GitHub authentication:

Click the link and enter the verification code shown in Home Assistant: https://github.com/login/device

Guide image 6 Guide image 7

After completing the above steps, HACS installation is finished.

Install the openHASP Integration

Search for the openHASP integration in HACS and install it, then restart Home Assistant.

Guide image 8
Configure the MQTT Broker

openHASP relies on MQTT to communicate with Home Assistant. You need to configure it in Home Assistant:

  1. Go to the Add‑on Store and install the MQTT Broker.
  2. Create a dedicated MQTT user for the openHASP device.

*Remember to note the port number at the bottom of the MQTT user configuration.

Guide image 9
Device Onboarding

In the openHASP device web backend, go to Settings → MQTT Settings and fill in the following:

  • Broker: IP address or hostname of the MQTT Broker.
  • Port: Usually 1883.
  • Username / Password: Enter if your Broker requires authentication.
  • Hostname: Choose a unique name for this panel, e.g., livingroom_panel.

After configuration, restart the device. The openHASP device will then be automatically discovered in Home Assistant.

openHASP and Home Assistant must be on the same local network for discovery to work.

💡 Tip: If the device entity status does not appear correctly, check the MQTT connection status on the openHASP integration configuration page. After configuration, a restart is required (Main Menu → Restart).

Guide image 10Guide image 11

Configuring Home Assistant Entities
Configuring the UI

First, you need to set up a UI layout containing components in the device web backend under “File Editor”.

For example, display an icon for a light.

Guide image 12
{
     "page": 1,
     "id": 10,
     "x": 110,
     "y": 190,
     "w": 100,
     "h": 100,
     "obj": "btn",
     "toggle": true,
     "text": "\uE335"
}
Editing Events

To make the panel components functional, you need to configure control events for them – for example, triggering on/off actions when a button is pressed or released.

There are three ways to edit automation events for components:

  1. openHASP Integration – Configure the JSON file containing control events in the device web backend under “File Editor”.
  2. Automations – Create automations in Home Assistant by entering YAML scripts that define the control events, referencing the same logic as used in the File Editor.
  3. Node‑Red – Configure events using Node‑Red.

For detailed instructions, see the official documentation: How-To - openHASP

Resources

FAQ

What is openHASP and how is it different from a regular touch screen?

openHASP is an open-source firmware project that turns a regular touch screen into a smart home control panel. An openHASP-equipped screen can communicate via MQTT with smart home systems like Home Assistant to control devices.

Does openHASP have to be used with Home Assistant?

Not necessarily. Since openHASP is based on the MQTT protocol, it can be used completely without Home Assistant, directly connecting to Node-RED or any MQTT-compatible system. This is why openHASP is very flexible.

What if I want to modify the UI after it's configured?

Simply edit the corresponding JSON file in the device's web backend under "File Editor". After saving, refresh the screen to see the new UI. Some changes may require a device restart to take effect.

Will the device status sync after integrating openHASP with Home Assistant?

Yes. A configured openHASP device will appear as a device entity in Home Assistant, with two-way synchronization – actions on the screen sync to Home Assistant, and changes in Home Assistant device status are reflected back on the screen.

Which event editing method is recommended?

Among the three methods, the openHASP integration approach is more stable. The automation method may occasionally have a delay where the status reverts to the previous state, while the openHASP integration handles event attribute changes internally, ensuring more accurate status feedback.

How do I use the GPIO function of openHASP?

In the device backend under "Configuration -> GPIO Settings", you can map GPIO pins as entities. After modification, you need to restart the device, and then delete the existing device in Home Assistant and re-add it for the GPIO entities to display properly.