A van leveling sensor for Home Assistant. Measures roll and pitch with a built-in IMU, displays real-time angles on an LCD screen, and streams data to Home Assistant over MQTT with automatic entity discovery.
Designed for camper vans, RVs, and any vehicle where getting level matters.
- Measures roll and pitch in both degrees and inches
- Built-in display shows real-time level status
- Publishes to MQTT with Home Assistant auto-discovery — entities appear automatically
- Web dashboard at
http://<device_ip>/for remote viewing and calibration - Calibration wizard for accurate readings on uneven ground
- OTA firmware updates — no USB cable needed after initial flash
Flash the firmware to an ESP32. If you received a pre-flashed device, skip to step 2.
See docs/building.md for ESP-IDF build instructions.
On first boot, LevelUp creates a WiFi access point. Connect to it and configure your van's network credentials through the captive portal or web dashboard.
To switch networks later, use the Reconfigure Wi-Fi button on the /status page —
it drops the device back into setup AP mode while preserving all other settings.
Set your MQTT broker address in the device settings. Default: mqtt://homeassistant.local:1883
For Home Assistant OS, the MQTT broker is typically at <ha_ip>:1883 (Mosquitto add-on)
or the internal broker.
If your Home Assistant has the MQTT integration configured and discovery enabled (both are defaults), LevelUp sensors appear automatically. No YAML needed.
Look for:
sensor.levelup_roll/sensor.levelup_pitch— degreessensor.levelup_roll_in/sensor.levelup_pitch_in— inchessensor.levelup_rssi— WiFi signal strength
If auto-discovery is disabled, add sensors manually:
A pre-built Lovelace dashboard with gauges, corner indicators, and a "LEVEL" badge is included. See docs/dashboard.md for setup.
- Building from source
- MQTT discovery details
- Manual MQTT setup
- REST sensor alternative
- Dashboard setup
CC0 1.0 Universal (public domain). See LICENSE.