Smart Display & Control

The smart-sensor-display is a specialized version of the HomeGenie Mini firmware, transforming your ESP32 or ESP32-S3 device with a connected TFT touch display into a powerful, local interface. It provides an interactive dashboard experience for real-time sensor data visualization, direct and configurable device control, system monitoring, and even customizable live camera feeds, all as part of the HomeGenie Mini ecosystem.

This firmware is designed to be highly configurable, leveraging different UI technologies based on your hardware's capabilities:

A core strength is its integration with HomeGenie Mini's automation Scheduler. All user interactions on the display can emit events, allowing these to trigger custom programs and control a wide range of connected devices.

The Smart Display firmware offers a versatile dashboard, allowing you to intuitively swipe between "Activities" for various functionalities. The Sensor Values Activity instantly shows current date, time, and live readings from sensors like DHT22 for temperature and humidity. For system diagnostics, the System Information Activity provides an overview of vital statistics and network information, plus on-screen buttons for display rotation or reinitiating device configuration.
The appearance and behavior of many of these activities can be tailored through the HomeGenie Panel or terminal settings.

HomeGenie Smart Display UI

Level and Color controls


Open media

Round Display (GC9A01)

ESP32-S3 + Motion + Temperature + Humidity sensors


Open media

Smart Display Casing

3d-printed smart display enclosure


Open media

Smart Display Casing

3d-printed smart display enclosure (inside view)


Open media

Smart Display wannabe Thermostat

Wall mounting the smart display and connecting it to a switch relay


Open media

Smart Display and Thermostat

And it finally became a smart thermostat! =)


Open media

Smart device control is a central aspect. For ESP32-S3 with PSRAM, two sophisticated LVGL-based activities are available: the Level Control Activity and the Color Control Activity. The Level Control Activity provides a sleek interface for managing devices like dimmable lights, fans, or shutters, featuring a clear LED status indicator and a responsive slider (0-100%). The Color Control Activity extends this functionality for RGB or tunable white lights, offering intuitive controls for color selection and temperature adjustments in addition to brightness and On/Off toggle. For both, the device name (which can auto-scroll if long) and its type are configurable via HomeGenie Panel for a truly personalized experience. Standard ESP32 (non-PSRAM) devices utilize a resource-friendly LGFX-based Switch Control Activity with similar On/Off and +/- buttons for level control, also displaying the configurable device name.

PSRAM-enabled builds also unlock the Camera Display Activity. This supports viewing JPEG camera feeds from remote HTTP URLs (like IP webcams) or, on specific ESP32-S3 boards, direct video streaming from a locally connected ESP32-CAM module, complete with an on-screen FPS counter and device name. Fun additions like a retro-inspired "Pac-Man" Digital Clock Activity and, if LGFX examples are enabled, a classic Analog Clock and a Gauge Example further enrich the user interface on these more capable devices.

A cornerstone of this firmware is its programmability and configurability. All UI interactions, such as button presses, slider changes, or color selections, emit events. These can be seamlessly captured by HomeGenie Mini's built-in Scheduler for sophisticated event-driven automation, detailed further below. Module properties like name and type, which influence UI elements like icons and titles, are easily configured through the HomeGenie Panel application or via the device's terminal interface for advanced setups.

Built-in automation

The true power of the Smart Display firmware is unlocked through its seamless integration with HomeGenie Mini's onboard Scheduler. Every significant user interaction on the display — such as adjusting a slider in the LevelControlActivity or selecting a hue in the ColorControlActivity — emits a distinct event.

For instance:

These events become powerful triggers within the Scheduler. You can easily create programs that:

This architecture allows you to build highly customized and responsive automations that react instantly to local UI interactions. All scheduler programs are configured conveniently from the HomeGenie Panel app. For comprehensive details on creating and managing these automations, please refer to the Scheduler documentation.

Configuration

Setting up your Smart Display is a straightforward process handled through the HomeGenie Panel app. For the initial setup, follow these steps:

  1. Flash the firmware onto your device using the Firmware Upload form below.
  2. Connect to Wi-Fi by linking your HomeGenie Mini to your network. You can use either the WPS button or the Bluetooth discovery tool within the Panel app.
  3. Add the device to your dashboard. Once online, it will appear in the discovery list. Simply select it to add it.

For more detailed instructions and troubleshooting, please consult the Device Setup guide.

Create this device now! 🪄

Connect your ESP32/ESP8266 microcontroller to your computer via USB, select your firmware version, and click "Create device" to upload the HomeGenie Mini firmware.

1. Select device type

2. Select firmware flavor

VERSION  

3. Let the magic happen!

Installing firmware directly from this page works only in browsers with Web Serial API enabled.

See the Device setup page for further information about configuring a HomeGenie Mini device.

menu_open Content index
forum Q & A discussion forum

Configuring via terminal interface

For advanced users or specific automation needs, HomeGenie Mini's Smart Display firmware can also be configured via its serial terminal interface.

Setting the display driver

You can enable the display driver via the terminal by setting the disp-typ parameter. A reboot is required after a manual change.

Example:

#SET:disp-typ GC9A01

For a complete list of configuration options, see the firmware's README file.

Setting Up Dashboard Activities

You can define the sequence and parameters of the activities available on the Smart Display dashboard using the dashboard configuration option. This is set using the SET command followed by a comma-separated list of activity identifiers. For activities that interact with a specific module, you can append the module address using a colon.

Command Format

#SET:dashboard <ActivityIdentifier1>[:<ModuleAddress1>],<ActivityIdentifier2>[:<ModuleAddress2>],...

Example

To display Sensor Values, two Camera feeds (module V1 for the first, V2 for the second), a Level Control (module M1), two Color Controls (modules H1, H2), followed by a Digital Clock, you would send:

#SET:dashboard SensorValues,CameraDisplay:V1,CameraDisplay:V2,LevelControl:M1,ColorControl:H1,ColorControl:H2,DigitalClock
Notes

Available Activity Identifiers

The currently implemented activity identifiers you can use in the dashboard string are:

Note on Hardware Requirements

The SystemInfo and SensorValues activities are designed to be lightweight and can run on all supported ESP32 hardware. All other activities listed (DigitalClock, SwitchControl, LevelControl, ColorControl, CameraDisplay, AnalogClock, GaugeExample) generally require PSRAM for optimal performance and to accommodate the richer graphical interfaces provided by LVGL or more complex LGFX rendering. Firmware builds for devices without PSRAM will typically have these more demanding activities disabled.

Display Behavior Configuration

You can customize general display behaviors such as screen brightness and the screen saver timeout. These settings can be adjusted either via the HomeGenie Panel application or through the terminal interface using the following parameters:

KeyDescriptionRange / Unit
disp-briScreen brightness level.1 - 127 (default: 64)
dsbrd-sstsScreen saver timeout. Set to 0 to disable.seconds (default: 15)

Examples (via Terminal):

To set the screen brightness to a higher level (e.g., 100):

#SET:disp-bri 100

To set the screen saver timeout to 30 seconds:

#SET:dsbrd-ssts 30

To disable the screen saver:

#SET:dsbrd-ssts 0

The screen saver will typically dim or turn off after the specified period of inactivity and will wake up on touch or other relevant system events. Using HomeGenie Panel provides a convenient graphical way to manage these settings alongside other device configurations.

Configuring activity titles

The title displayed for each activity module (especially for control-type activities like LevelControl or CameraDisplay) can be customized. This is particularly useful when you have multiple instances of the same activity type controlling different devices.

The configuration key follows the pattern: title-<module_address>

KeyDescriptionExample Value
title-<address>Custom title/name displayed for this activity"Living Room Light"

Where <address> is the module address assigned to the activity instance (e.g., D1, M1, V1, H1).

Example:
To set the title for the Level Control activity linked to module "M1":

#SET:title-M1 Living Room Dimmer

While these settings can be configured via the terminal, they are also easily managed using the HomeGenie Panel application under each module's "Details" section.

Camera configuration

The CameraDisplayActivity is highly versatile, supporting both locally connected ESP32 camera modules and remote HTTP video feeds. The primary method for enabling local camera hardware support is by selecting the appropriate 'ESP32 Camera' option in the Firmware Upload form (found at the bottom of this page), which pre-configures the necessary system settings.

1. Using the Locally Connected ESP32 Camera (e.g., assigned to Module "V1"):

If local camera support was enabled during firmware flashing (which sets the system's cam-type parameter to esp32-cam), the first CameraDisplay activity instance declared in your dashboard configuration string will automatically utilize this local camera.

For this first instance (let's assume its module address is "V1" in your dashboard string), you can use the following module parameters to control the local camera's output:

ParameterDescriptionDefault Value
title-V1Custom title for this local camera view."V1"
rcam-res-V1Desired resolution index for the local camera."5" (e.g. 320x240)
rcam-qlt-V1Desired JPEG quality for the local camera (10-63)."10" (high)

The rcam-V1 (URL endpoint) property is ignored for this local camera instance.

2. Displaying Remote HTTP JPEG Camera Feeds (e.g., assigned to Module "V2"):

Any CameraDisplay activity instances listed after the first one in your dashboard string (or the first one, if local camera support was not enabled) are configured for remote HTTP camera feeds.

The following parameters apply to each such CameraDisplay instance (e.g., for module address "V2"):

ParameterDescriptionDefault Value
title-V2Custom title for this remote camera view."V2"
rcam-V2Required. HTTP(S) JPEG image stream URL.(empty)
rcam-res-V2Requested resolution (index) if rcam-V2 is an HG-Mini CAM."3"
rcam-qlt-V2Requested JPEG quality (10-63) if rcam-V2 is an HG-Mini CAM."10"

The rcam-res-V2 and rcam-qlt-V2 parameters are primarily for remote HomeGenie Mini ESP32-CAMs and are generally ignored by third-party IP camera URLs that serve single JPEGs.

Example dashboard Configuration String to achieve V1=Local, V2=Remote:

#SET:dashboard CameraDisplay:V1,CameraDisplay:V2,LevelControl:M1,SensorValues

(Advanced Note: The system-wide cam-type parameter can also be set to esp32-cam or cleared via the terminal interface to override the firmware upload selection.)

Source code

This firmware pre-compiled binaries and source code are available on GitHub:

folder_open smart-sensor-display

Modules and API

In addition to the common Device API, the following modules and API are implemented by this device.

mini module

Built-in sensor module.

Domain / Address

HomeAutomation.HomeGenie/mini

Properties

D1 module

This module is associated with the SwitchControl activity.

Domain / Address

HomeAutomation.HomeGenie/D1

Properties

M1 module

This module is associated with the LevelControl activity.

Domain / Address

HomeAutomation.HomeGenie/M1

Properties

H1 module

This module is associated with the ColorControl activity.

Domain / Address

HomeAutomation.HomeGenie/H1

Properties

V1 module

This module is associated with the CameraDisplay activity.

Domain / Address

HomeAutomation.HomeGenie/V1

Properties

menu_open Content index
forum Q & A discussion forum
HomeGenie
MINI 1.2 — Documentation