v1.13.16 - Enhanced GET_STATUS with Comprehensive Device Overview (2025-12-11)¶
What Changed?¶
This release significantly enhances the GET_STATUS command by integrating comprehensive device status information into a single response. The command now includes threshold settings (all three channels), environmental sensor data (BME280), GNSS position and satellite data, and device identification (MAC address). This provides users with a complete device overview without needing to make multiple individual queries, improving efficiency and reducing serial communication overhead.
What's New¶
Main Feature: Comprehensive GET_STATUS Command Enhancement¶
What it does:
The GET_STATUS command now returns a unified device status response with nested JSON objects containing:
- Device identification: version, build_type, mac_address
- Detection configuration: poll_count, deadtime_ms, stream_enabled
- Threshold values: ch1, ch2, ch3 (nested in "thresholds" object)
- Environmental sensor data: temperature, pressure, humidity (nested in "bme280" object, when ENABLE_BME280=1)
- GNSS position data: latitude, longitude, altitude, time, satellites, quality, validity, HDOP (nested in "gnss" object, when ENABLE_GNSS=1)
How to use it:
Send the GET_STATUS command to retrieve the complete device status in a single query. The response is automatically formatted as nested JSON objects for logical organization of different data categories.
Code example:
# Via serial terminal
GET_STATUS
# Response (full device status with all features enabled)
{
"type": "response",
"status": "ok",
"sent_at": 12345,
"version": "1.13.16",
"build_type": "esp32dev-dev",
"mac_address": "A4:CF:12:7F:9E:34",
"poll_count": 100,
"deadtime_ms": 0,
"stream_enabled": true,
"uptime_ms": 123456789,
"thresholds": {
"ch1": 500,
"ch2": 500,
"ch3": 500
},
"bme280": {
"tmp_c": 25.35,
"atm_pa": 1013.25,
"hmd_pct": 45.67
},
"gnss": {
"latitude": 35.6762,
"longitude": 139.7674,
"altitude": 50.0,
"gnss_time": 1732046795,
"satellites": 12,
"quality": 1,
"valid": true,
"hdop": 1.2
}
}
Conditional Fields:
bme280object appears only whenENABLE_BME280=1gnssobject appears only whenENABLE_GNSS=1- All core fields (version, build_type, mac_address, thresholds) are always present
Installation¶
Quick Start¶
# Get the release
git checkout v1.13.16
# Build
task build
# Upload
task upload
# Check it works
task monitor
What's Different from the Last Version?¶
✅ Added¶
- Enhanced GET_STATUS response with MAC address field
- Nested "thresholds" object containing all three channel threshold values (ch1, ch2, ch3)
- Conditional nested "bme280" object with temperature, pressure, humidity when ENABLE_BME280=1
- Conditional nested "gnss" object with all GNSS position and satellite data when ENABLE_GNSS=1
🔧 Changed¶
- GET_STATUS command expanded from simple status fields to comprehensive device overview
- Response structure now uses nested objects for better data organization and clarity
🐛 Fixed¶
- None (enhancement release)
Is It Safe to Upgrade?¶
Backward Compatible: Yes
- GET_STATUS response is enhanced with additional fields, not replaced
- Existing clients expecting the original fields (version, poll_count, stream_enabled, uptime_ms) will continue to work
- Additional nested objects (thresholds, bme280, gnss) are additive and don't break existing parsing
- No breaking changes to command syntax or other commands
Tests Passed¶
- ✅ Builds without errors (RAM: 8.8%, Flash: 26.6%)
- ✅ All pre-commit hooks pass (formatting, trailing whitespace, YAML/JSON validation)
- ✅ GET_STATUS handler compiles with Phase 6 Payload Pointer Pattern
- ✅ Nested JSON objects properly created and serialized
- ✅ Conditional compilation works for ENABLE_BME280 and ENABLE_GNSS flags
Release Details¶
- Date: 2025-12-11
- Version: v1.13.16
- Files Changed: 1
- src/command/status.cpp (enhanced GET_STATUS handler with nested structures)
Next Steps¶
- Phase 6 Payload Pointer Pattern: Continue migration for WiFi command handlers (SET_WIFI_SSID, SET_WIFI_ENABLE, GET_WIFI_STATUS)
- CommandParser Class: Implement unified command argument parsing framework for v1.14.0 to consolidate validation logic
- Additional Command Enhancement: Consider similar nested structure enhancements for other comprehensive query commands