
Open media
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.
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.
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:
Sensor.Level
event. The value represents the new percentage, normalized to a float between 0.00 (off/min) and 1.00 (on/max).ColorControlActivity
emits a Sensor.ColorHsv
event, providing Hue, Saturation, and Value/Brightness components, also normalized to an interval between 0.00 and 1.00.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.
Setting up your Smart Display is a straightforward process handled through the HomeGenie Panel app. For the initial setup, follow these steps:
For more detailed instructions and troubleshooting, please consult the Device Setup guide.
Connect your ESP32/ESP8266 microcontroller to your computer via USB, select your firmware version, and click "Create device" to upload the HomeGenie Mini firmware.
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.
For advanced users or specific automation needs, HomeGenie Mini's Smart Display firmware can also be configured via its serial terminal interface.
You can enable the display driver via the terminal by setting the disp-typ
parameter. A reboot is required after a manual change.
disp-typ
GC9A01
, ST7789
, ST7796
, AUTO
(experimental)Example:
#SET:disp-typ GC9A01
For a complete list of configuration options, see the firmware's README file.
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.
#SET:dashboard <ActivityIdentifier1>[:<ModuleAddress1>],<ActivityIdentifier2>[:<ModuleAddress2>],...
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
<ActivityIdentifierX>
is the specific identifier for the activity as processed by the firmware (e.g., SensorValues
, LevelControl
, CameraDisplay
). Ensure you use the correct case-sensitive identifier.<ModuleAddressX>
is the address (like "V1", "M1") linked to that specific activity instance.SensorValues
or DigitalClock
in the example) do not require a module address suffix.The currently implemented activity identifiers you can use in the dashboard
string are:
SystemInfo
SensorValues
DigitalClock
SwitchControl:<module_address>
LevelControl:<module_address>
ColorControl:<module_address>
CameraDisplay:<module_address>
AnalogClock
GaugeExample
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.
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:
Key | Description | Range / Unit |
---|---|---|
disp-bri | Screen brightness level. | 1 - 127 (default: 64) |
dsbrd-ssts | Screen 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.
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>
Key | Description | Example 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.
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:
Parameter | Description | Default Value |
---|---|---|
title-V1 | Custom title for this local camera view. | "V1" |
rcam-res-V1 | Desired resolution index for the local camera. | "5" (e.g. 320x240) |
rcam-qlt-V1 | Desired 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"):
Parameter | Description | Default Value |
---|---|---|
title-V2 | Custom title for this remote camera view. | "V2" |
rcam-V2 | Required. HTTP(S) JPEG image stream URL. | (empty) |
rcam-res-V2 | Requested resolution (index) if rcam-V2 is an HG-Mini CAM. | "3" |
rcam-qlt-V2 | Requested 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
CameraDisplay:V1
: If local camera support was enabled at flash time, this first CameraDisplay
instance (module "V1") uses the local ESP32 camera.CameraDisplay:V2
: This second instance (module "V2") will use the URL from rcam-V2
.(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.)
This firmware pre-compiled binaries and source code are available on GitHub:
folder_open smart-sensor-display
In addition to the common Device API, the following modules and API are implemented by this device.
mini
moduleBuilt-in sensor module.
HomeAutomation.HomeGenie/mini
Sensor.Orientation
Sensor.Humidity
Sensor.Temperature
System.BytesFree
D1
moduleThis module is associated with the SwitchControl
activity.
HomeAutomation.HomeGenie/D1
Sensor.Level
M1
moduleThis module is associated with the LevelControl
activity.
HomeAutomation.HomeGenie/M1
Sensor.Level
H1
moduleThis module is associated with the ColorControl
activity.
HomeAutomation.HomeGenie/H1
Sensor.ColorHsv
Sensor.Level
V1
moduleThis module is associated with the CameraDisplay
activity.
HomeAutomation.HomeGenie/V1
RemoteCamera.EndPoint