Skip to content

v2.6.2-pre10: Behavioral HVAC Capability Detection

Pre-release
Pre-release

Choose a tag to compare

@phurth phurth released this 12 Feb 02:08
· 54 commits to main since this 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:
    • zoneStatus active bits: Cooling→AC, HeatPump→HP+AC, Gas→GasFurnace
    • heatMode+heatSource: Heating+PreferGas→Gas, Heating+PreferHeatPump→HP
    • fanMode Low→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