Skip to main content
These patterns come from a production ESP-IDF project — a Waveshare ESP32-S3 touch HMI with cloud control, Modbus, HVAC, and a BMP280 sensor. They show the Hyperwisor component used the way you’d use it in a real product.

Reference project

hmi_waveshare_7 — the full source these examples are drawn from.

The shape of an integration

  1. Register command handlers for the commands your dashboard sends.
  2. Push sensor values to dashboard widgets by their widget ID.
  3. Respond to commands so the UI can confirm.

Handling a command and responding

Pushing sensor values to widgets

Push readings to the widget IDs your dashboard uses (here a Gauge w_temp and a Label w_hpa):
Call it from your sensor task on a timer — the gauges move live.

Reading a color-picker command

The dashboard Color Picker auto-injects rgb:{ r, g, b } (and hex, hsl, …). Pull the channels out of the params:

Configurable widget bindings

A common pattern from the reference project: don’t hardcode widget IDs — let the dashboard send them via a config command and store them in NVS. Then your update_widget_* calls use the stored IDs, so the same firmware works with any dashboard layout.
This mirrors the Arduino library’s model — see the Arduino examples for the same patterns in C++.

API reference

Every function these examples use.

Configuration

Kconfig toggles and the board port.