- New ha_client.rs: background-thread WebSocket client using tungstenite
with rustls TLS. Handles auth, state subscription, service calls, and
recorder/statistics history fetch for climate graphs. Auto-reconnects
on disconnect with 5s delay.
- HaState added to State struct: tracks connection status, entity states,
and temperature history per entity.
- main.rs loads ha-home/config.json at startup, extracts all referenced
entity IDs, and creates the HaService. ha_tick() drains responses into
state each frame, matching the weather_tick pattern.
- tungstenite 0.24 added to Cargo.toml with handshake + rustls features.
All 84 existing tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>