Add Home Assistant WebSocket client module
- 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>
This commit is contained in:
1 parent
cbea5a322f
commit
14db4f6e71
5 files changed
+856
-2
No files matched your search
@@ -26,6 +26,7 @@ sdl2 = { version = "0.38", features = ["use-pkgconfig"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
time = { version = "0.3", features = ["local-offset", "formatting", "parsing"] }
|
||||
tungstenite = { version = "0.24", default-features = false, features = ["handshake", "rustls-tls-native-roots"] }
|
||||
ureq = { version = "3.4", default-features = false, features = ["rustls"] }
|
||||
|
||||
[profile.release]
|
||||
|
||||
Reference in new issue
Block a user