Releases: StuckAtPrototype/AirCube
Release list
Release_V1.5.2
First release since v1.4.3. New absolute AQI, AQI-driven LED, and Zigbee brightness control.
Highlights
- Canonical AQI (0–500): new absolute, TVOC-derived air-quality score (replaces reliance on the relative AQI-S).
- AQI-driven LED: smooth green → yellow → red gradient tied to fixed indoor-air thresholds.
- Zigbee brightness control: set/read LED brightness from Home Assistant; reports on startup and button press.
- Updated HA integrations: refreshed ZHA quirk and Zigbee2MQTT converters (1.x
.js+ 2.x.mjs), backward compatible.
Improvements
- Zigbee stability: rejoin flap watchdog, exponential backoff, relaxed keep-alive (3 s → 7 s), bounded locks.
- Documentation: new AQI/TVOC/color reference tables and updated setup guides.
Breaking changes
- Serial:
aqiis now the TVOC-derived AQI (0–500); the old relative value moved toaqi_s. - Zigbee: custom cluster
0xFC01attr0x0002now carries the TVOC-derived AQI (0–500). Use the updated ZHA/Z2M converter.
Bug fixes
- Fixed Zigbee rejoin/lockup edge cases and merge artifacts (reboot handler, init-fail watchdog, pairing lock).
Flashing
Download AirCube_firmware_v1.5.2.bin, flash at 0x0 via ESP Launchpad (DIY mode). See FIRMWARE_UPDATE.md. Settings are preserved.
AirCube Firmware v1.4.3
Zigbee stability fixes.
What's new
- Rejoin flap watchdog. After 10 rejoins in 5 minutes, AirCube reboots itself cleanly instead of letting the Zigbee MAC assert.
- Smarter rejoin backoff. The 1 s → 5 min backoff only resets after 60 s of stable uptime, so a flapping parent no longer pins us to
NETWORK_STEERINGevery second. - Keep-alive 3 s → 7 s. Two missed polls used to trip
PARENT_LINK_FAILUREon marginal RF. - Default TX power 10 → 20 dBm (ESP32-H2 max). Configurable in menuconfig.
- Overflow-safe history readout over USB serial; the reply reports slots actually emitted so the desktop app's cursor stays correct.
AirCube Firmware v1.4.2
Fixed
- Zigbee silent disconnect after 48–72 h runtime (#27). After a parent link failure triggered a rejoin, the internal
s_rejoiningflag was never cleared on the subsequentDEVICE_REBOOTsuccess path. The device would stay "rejoining" forever, skip further rejoin scheduling, and appear offline in Home Assistant / ZHA with the red LED on. The flag and backoff timer are now properly reset whenever the stack reports a successful reboot into an already-commissioned network. - Sensor task could block forever on a stuck Zigbee stack.
zigbee_update_sensors()andzigbee_start_pairing()now acquire the Zigbee lock with a bounded timeout (2 s / 5 s). On timeout the cycle is skipped or pairing is aborted instead of deadlocking the sensor pipeline.
Added
- Task watchdog on the sensor task.
sensor_taskis now registered with the ESP-IDF Task Watchdog Timer and feeds it each loop, so any future hang is caught and recovered automatically via reset. - Auto-recovery from stale radio state. If Zigbee stack initialization fails 5 times in a row (e.g. after a soft reset leaves the 802.15.4 radio in a bad state), the device now calls
esp_restart()to force a clean hardware reset instead of retrying forever.
AirCube Firmware v1.4.0
Added
- Remote brightness control — LED brightness (0–100%) now controllable from Home Assistant, Zigbee2MQTT, and SmartThings via Zigbee Analog Output cluster (0x000D)
- SmartThings Edge driver — Full Lua driver with setup guide (
SMARTTHINGS.md) - Configurable Zigbee TX power — New Kconfig option, default 10 dBm
- Firmware update guide — Browser-based flashing via ESP Launchpad (
FIRMWARE_UPDATE.md) - Partition table tracked in git — Deterministic 2 MB flash builds
Changed
- Zigbee attribute updates throttled to every 10 seconds (was every sensor cycle)
- Button task stack doubled to 4096 words to prevent overflow during pairing
- ZHA quirk updated to v2 imports for Home Assistant 2026 compatibility
- Explicit attribute reports now sent for temperature and humidity clusters, not just custom cluster
Fixed
- HA 2026 configuration path trailing slash
- AQI-to-LED color mapping correction
Docs
- README expanded with sensor measurement details and official vs. community extension distinction
- HOME_ASSISTANT.md rewritten for 2025/2026 differences and brightness control
Release_V1.3_HA Home Assistant Integration
This is a huge one! I have added a lot of functionality into the AirCubes, the biggest one being Home Assistant integration via Zigbee!
AirCube Firmware v1.3.0
Sensors: ENS210 (temperature, humidity) + ENS16X (eCO2, eTVOC, AQI) over I2C.
3-minute warm-up for stable air quality readings.
LED: Smooth green-to-red gradient based on AQI. Blue flash during pairing.
5 brightness levels (button cycles through them), saved across reboots.
Zigbee: Home Assistant integration over 802.15.4 (ESP32-H2 native radio).
- Standard temp/humidity clusters + custom cluster (0xFC01) for eCO2, eTVOC, AQI
- Works with ZHA and Zigbee2MQTT (custom quirk/converter included)
- Pairing is on-demand only -- hold button 3s to start, times out after 60s
- Previously paired devices auto-reconnect on reboot
Serial: JSON sensor output over USB at 1 Hz (configurable).
Commands for config, history retrieval, and CSV export.
History: 7-day ring buffer on flash, 5-minute intervals, min/avg/max.
Platform: ESP-IDF v5.5.1, 4 MB flash, custom partition table.
AirCube Tray v1.0.2
Windows system tray app -- puts your AQI right in the taskbar.
- Tray icon changes color with AQI (green → red, gray when disconnected)
- Click to open dashboard: live readings, charts, and device history
- Charts for AQI, temp, humidity, eCO2, eTVOC with selectable time ranges
- Device history viewer -- browse 7 days of data stored on the device, export to CSV
- Alerts when AQI exceeds your threshold (configurable, default 100)
- Settings: serial port, °F/°C, alert threshold, autostart with Windows
- No install required -- single .exe, runs from anywhere
Built with Python, PyQt6, Matplotlib, pyserial.
Windows_App_v1.0
AirCube v1.0
Desktop app for real-time air quality monitoring from your AirCube sensor.
Features
- Live display of Temperature, Humidity, AQI, eCO2, and eTVOC
- Color-coded AQI (green → yellow → orange → red)
- Historical charts with adjustable history length
- Optional CSV logging for data export
Usage
- Connect AirCube via USB
- Run
AirCube.exe - Select COM port → Click Connect
Debug
If the device is not listed, flip the physical USB C cable and plug it in again.
Notes
- Windows 10+ required
- Close other serial monitors before connecting
- First run may trigger SmartScreen warning - click "Run anyway"