Repository navigation
v2.6.2-pre10: Behavioral HVAC Capability Detection
Pre-release
Pre-release
Changes
Behavioral HVAC Capability Detection
- Root cause found: The official OneControl app gets zone capability from V2 Packed BLE messages (byte 17 in BleCommunicationsAdapter.OnDataReceived). Our COBS-based transport doesn't include that V2 wrapper layer, and GetDevicesMetadata returns 0x00 on many gateways.
- Solution: Learn zone capabilities from HVAC status broadcasts:
zoneStatusactive bits: Cooling→AC, HeatPump→HP+AC, Gas→GasFurnaceheatMode+heatSource: Heating+PreferGas→Gas, Heating+PreferHeatPump→HPfanModeLow→MultiSpeedFan
- Capability accumulates across status updates (bits are OR'd in)
- Merged with metadata capability:
merged = metaCap OR observedCap
Preset Logic Fix
- Removed the cap==0 fallback that showed presets on ALL zones
- Presets now require evidence of BOTH gas furnace AND heat pump
- Zones without dual heat source (e.g., Garage with AC only) will correctly hide the preset selector
Diagnostics
- Diagnostic log shows: meta cap, observed cap, merged cap, gas/hp flags, presets decision
- Observed cap changes logged with trigger details (status/mode/source/fan)
What to expect
- On first connection, presets may not appear until the system broadcasts status (usually within seconds)
- Once the zone reports heating with a specific source, the capability is learned for the session
- Garage/Bedroom (AC-only) should NOT show presets; Main (gas+HP) should show presets after heating status arrives