RisalDash RisalDash

Catalog

Everything the dashboard is built from

36 controls · 95 sensors · 74 quantities

Every widget and sensor RisalDash is built from — controls and sensor presets across air quality, power & energy, motion & IMU, light & UV, gas safety, weather, water and health. One line of dash.sensor() drops the right gauges, charts and metrics with the correct units and ranges.

live render — every widget, in the device UI

Controls

Controls · input tools

Toggle / Switcher

in ESPUI
dash.toggle("Pump", &pump, [](bool v){...})

Button

in ESPUI
dash.button("Restart", [](){ ESP.restart(); })

Slider

in ESPUI
dash.slider("Brightness", &pwm, 0, 255)

Number

in ESPUI
dash.number("Setpoint", &target, 0, 100)

Text Input

in ESPUI
dash.text("SSID", &ssid)

Text Area

RisalDash only
dash.textarea("Notes", &notes)

Password

RisalDash only
dash.password("WiFi pass", &pass)

Select / Dropdown

in ESPUI
dash.select("Mode", &mode, {"Auto","Manual","Off"})

Radio group

RisalDash only
dash.radio("Fan", &lvl, {"Low","Mid","High"})

Color picker

RisalDash only
dash.color("LED color", &rgb)

Time / Date

in ESPUI
dash.time("Alarm", &alarmTime)

D-Pad

in ESPUI
dash.pad("Drive", [](int dir){...})

Joystick

RisalDash only
dash.joystick("Move", [](int x,int y){...})

Stepper +/-

RisalDash only
dash.stepper("Count", &n, 1)

File / OTA upload

RisalDash only
dash.ota("Firmware")

Terminal / console

RisalDash only
dash.terminal("Shell", handleCmd)

Radio station browser

RisalDash only
dash.radioBrowser("Stations", &listText, [](const String& v){ playFirst(v); })

Display · display widgets

Metric / Value

in ESPUI
dash.metric("CPU", &cpu, "%")

Gauge

RisalDash only
dash.gauge("Voltage", &v, 0, 14, "V")

Chart / Sparkline

RisalDash only
dash.chart("Temp", &t, "°C").history(60)

Status badge

RisalDash only
dash.badge("State", &st)

Label

in ESPUI
dash.label("Status", &statusStr)

LED indicator

RisalDash only
dash.led("Link", &linkUp)

Robot face

RisalDash only
dash.face("Mood", &mood)

3D orientation cube

RisalDash only
dash.cube("Orientation", &pitch, &roll, &yaw)

Heatmap / thermal

RisalDash only
dash.heatmap("Thermal", 32, 24)

Progress bar

RisalDash only
dash.progress("Upload", &pct)

Key-Value table

RisalDash only
dash.table("System").row("uptime",&up)

Log / Console

RisalDash only
dash.log("Events", 5).print("...")

Image

in ESPUI
dash.image("Cam", "/snapshot.jpg")

AI hint

RisalDash only
dash.ai("Light turns off at 23:00")

Mini-map / GPS

RisalDash only
dash.map("Track", &lat, &lon)

Layout · sections, tabs, width

Group / Panel

in ESPUI
dash.group("Power")

Tab

in ESPUI
dash.tab("Sensors")

Separator

in ESPUI
dash.separator("Settings")

Span / Width

RisalDash only
widget.span(2)

Sensors

quantity / unit map to Home Assistant device_class

Environment · 21

BME280

I2C
temperature °C humidity % pressure hPa

BME680

I2C
temperature °C humidity % pressure hPa tvoc ppb air_quality AQI

BMP280

I2C
temperature °C pressure hPa altitude m

BMP388

I2C
pressure hPa temperature °C altitude m

DHT22 / AM2302

1-Wire
temperature °C humidity %

DHT11

1-Wire
temperature °C humidity %

DS18B20

1-Wire
temperature °C

SHT31

I2C
temperature °C humidity %

SHT41

I2C
temperature °C humidity %

AHT20

I2C
temperature °C humidity %

Si7021

I2C
temperature °C humidity %

HDC1080

I2C
temperature °C humidity %

MCP9808

I2C
temperature °C

LM35

Analog
temperature °C

MAX6675 thermocouple

SPI
temperature °C

MAX31855 thermocouple

SPI
temperature °C

HTU21D

I2C
temperature °C humidity %

MLX90614

I2C
object_temp °C temperature °C

MAX31865 RTD

SPI
temperature °C

Weather station (wind/rain)

GPIO/Analog
wind_speed km/h gust km/h wind_direction ° rainfall mm

AS3935 lightning

I2C/SPI
lightning km strikes count

Air · 13

MH-Z19B

UART
co2 ppm

SCD30

I2C
co2 ppm temperature °C humidity %

SCD40

I2C
co2 ppm temperature °C humidity %

SCD41

I2C
co2 ppm temperature °C humidity %

CCS811

I2C
eco2 ppm tvoc ppb

SGP30

I2C
eco2 ppm tvoc ppb

ENS160

I2C
eco2 ppm tvoc ppb air_quality AQI

PMS5003

UART
pm1 µg/m³ pm25 µg/m³ pm10 µg/m³

SDS011

UART
pm25 µg/m³ pm10 µg/m³

SPS30

I2C/UART
pm1 µg/m³ pm25 µg/m³ pm10 µg/m³

SGP41

I2C
voc_index index nox_index index

SFA30

I2C
formaldehyde ppb temperature °C humidity %

SEN55

I2C
pm1 µg/m³ pm25 µg/m³ pm4 µg/m³ pm10 µg/m³ voc_index index nox_index index temperature °C humidity %

Gas · 7

SGP40

I2C
air_quality AQI tvoc ppb

MQ-2

Analog
gas_lpg ppm gas_smoke ppm

MQ-3

Analog
gas_alcohol ppm

MQ-7

Analog
gas_co ppm

MQ-135

Analog
air_quality AQI gas_co ppm

KY-026 flame

Analog/GPIO
flame bool

MQ-9

Analog
gas_co ppm gas_lpg ppm

Light · 7

BH1750

I2C
illuminance lx

TSL2561

I2C
illuminance lx ir raw

TSL2591

I2C
illuminance lx ir raw

VEML6075

I2C
uv index uva µW/cm²

VEML7700

I2C
illuminance lx

LTR390

I2C
uv index illuminance lx

TCS34725

I2C
color RGB illuminance lx

Motion · 15

APDS9960

I2C
gesture enum color RGB distance cm illuminance lx

HC-SR04

GPIO
distance cm

VL53L0X

I2C
distance cm

VL53L1X

I2C
distance cm

PIR HC-SR501

GPIO
presence bool

LD2410 mmWave

UART
presence bool distance cm

LD2450 mmWave (multi-target)

UART
targets count distance cm

RCWL-0516 radar

GPIO
presence bool

MPU6050

I2C
acceleration g gyro °/s temperature °C

MPU9250

I2C
acceleration g gyro °/s magnetic µT

ADXL345

I2C
acceleration g

QMC5883L

I2C
magnetic µT

SW-420 vibration

GPIO
vibration bool

SW-520D tilt

GPIO
tilt bool

BNO055 9-DoF IMU

I2C
pitch ° roll ° yaw °

Power · 9

INA219

I2C
voltage V current A power W

INA226

I2C
voltage V current A power W

INA3221

I2C
voltage V current A

ACS712

Analog
ac_current A

SCT-013 clamp

Analog
ac_current A

PZEM-004T

UART
voltage V ac_current A power W energy kWh

HLW8012

GPIO
voltage V current A power W

CSE7766

UART
voltage V current A power W

Daly / JK BMS

UART
soc % voltage V current A temperature °C

Agro · 9

Capacitive Soil v2

Analog
soil_moisture %

YL-69 / FC-28 soil

Analog
soil_moisture %

PH-4502C

Analog
ph pH

DS18B20 (waterproof)

1-Wire
soil_temp °C

Water Level (analog)

Analog
water_level %

YF-S201 flow

GPIO
flow L/min

FC-37 rain

Analog/GPIO
rain bool

TDS / EC meter

Analog
tds ppm ec µS/cm

Turbidity sensor

Analog
turbidity NTU

Misc · 13

HX711 + load cell

GPIO
weight g

MAX9814 microphone

Analog
sound dB

INMP441 I2S mic

I2S
sound dB

TTP223 touch

GPIO
touch bool

DS3231 RTC

I2C
rtc time temperature °C

Reed switch

GPIO
door bool

Water leak (rain board)

Analog/GPIO
moisture_leak bool

NAU7802 + load cell

I2C
weight g

Pulse counter

GPIO
frequency Hz count count

Tachometer (RPM)

GPIO
rpm RPM

u-blox NEO-M10 GPS

UART
speed km/h altitude m satellites count

u-blox NEO-6M GPS

UART
speed km/h altitude m satellites count

System diagnostics

Internal
uptime h rssi dBm free_heap KB

Bio · 1

MAX30102

I2C
heart_rate bpm spo2 %

Ready-made templates

Each template pairs a sensor preset with its matching fake, so it runs with no hardware. Copy one from examples/04_Templates and flash.

AirQuality

RisalFakeAir

CO₂ · VOC · PM2.5 · NOx

dash.sensor("sen55", …);

PowerMeter

RisalFakePower

Voltage · current · power · kWh

dash.sensor("pzem004t", …);

WeatherStation

RisalFakeWeather

Wind · gust · rain · UV

dash.sensor("weather", …);

MotionIMU

RisalFakeIMU

Pitch · roll · yaw · compass

dash.sensor("bno055", …);

WeightScale

RisalFakeWeight

Load-cell weight

dash.sensor("hx711", …);

WaterQuality

RisalFake

TDS · EC · pH · turbidity

dash.sensor("tds", …);

WaterMeter

RisalFakeFlow

Flow rate · total litres

dash.sensor("flow", …);

BatteryBMS

RisalFakeBattery

SoC · pack V · current · temp

dash.sensor("bms", …);

HealthMonitor

RisalFakeHealth

Heart rate · SpO₂

dash.sensor("max30102", …);

GasSafety

RisalFakeGas

Smoke / LPG / CO alarm

dash.sensor("mq2", …);

Every preset ships with a matching fake — you can build the whole dashboard with no hardware. See the fake-sensor library →