Skip to content

Commit e44c438

Browse files
trcyberopticbduisenovclaude
committed
Add BL/WW circuit support with circuit-type sensor filtering (v0.13.0)
Merge community PR #2 (BL + WW circuits) with added circuit_types filter to prevent sensors appearing on wrong circuit types. Bump version to 0.13.0. New sensors: BL (temp, operating hours, energy), WW (temp top/bottom), HK (flow temp, room temp target). Energy unit (MWh) pending verification. Co-Authored-By: Babur <bduisenov@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d0cab94 commit e44c438

3 files changed

Lines changed: 14 additions & 9 deletions

File tree

CLAUDE.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The integration lives in `custom_components/hoval_connect/`. User setup is email
2929
- `climate.py` — HK heating: target temp, HVAC modes (heat/auto/off)
3030
- `fan.py` — HV ventilation: speed slider 0–100%, on/off (standby ↔ temporary-change), debounced 1.5s
3131
- `select.py` — Program selection (week1/week2/ecoMode/standby/constant) with user-defined names
32-
- `sensor.py`9 per circuit + 6 plant-level sensors (events, weather)
32+
- `sensor.py`Circuit-type-filtered sensors (HV/HK/BL/WW) + 6 plant-level sensors (events, weather)
3333
- `binary_sensor.py` — Plant online status + error/warning status
3434
- `diagnostics.py` — Diagnostic export with PII redaction
3535
- `const.py` — API URLs, OAuth client ID, token TTLs, polling interval, circuit types, duration enums
@@ -40,7 +40,8 @@ The integration lives in `custom_components/hoval_connect/`. User setup is email
4040
- Entities use `CoordinatorEntity` — no direct API calls, all data comes from the coordinator
4141
- Device hierarchy: one parent device per plant, one child device per plant+circuit (linked via `via_device`)
4242
- Circuit devices identified by `{plantId}_{circuitPath}`
43-
- Supports HV (ventilation) and HK (heating) circuit types (`SUPPORTED_CIRCUIT_TYPES` in `const.py`)
43+
- Supports HV (ventilation), HK (heating), BL (boiler), and WW (warm water) circuit types (`SUPPORTED_CIRCUIT_TYPES` in `const.py`)
44+
- Sensor descriptions use `circuit_types: frozenset[str] | None` to filter which sensors appear on which circuit types (`None` = all types)
4445
- Fan speed resolution uses smart fallback chain: live airVolume → targetAirVolume → program air volume → default 40% (API rejects value=0)
4546
- All entity platforms use `translation_key` for entity names (not hardcoded `_attr_name`)
4647
- Dynamic entity discovery: all platforms listen to `SIGNAL_NEW_CIRCUITS` dispatcher signal to add entities at runtime without restart
@@ -115,5 +116,6 @@ HK (heating), BL (boiler), WW (warm water), FRIWA (fresh water), HV (ventilation
115116
- Energy stats return empty for HV circuit (likely only relevant for HK/WW/SOL)
116117
- `business/plants/{id}/plant-structure` needs business role
117118
- Full OpenAPI 3.1 spec saved at `docs/openapi-v3.json` (also available live at `/v3/api-docs`, no auth required)
118-
- Non-supported circuit types (BL, WW, FRIWA, SOL, SOLB, PS) have endpoint support in the API but no HA entities yet
119+
- Non-supported circuit types (FRIWA, SOL, SOLB, PS) have endpoint support in the API but no HA entities yet
120+
- BL energy sensors (`heatAmount`, `totalEnergy`) use MWh — unit not verified against raw API values
119121
- HK climate entity: `set_temperature` sends value as integer — may need adjustment for different HK circuit models (some use tenths of degree)

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ Plants and circuits are discovered automatically from your account.
3737
- Shows user-defined program names from the Hoval app
3838
- Current program pre-selected
3939

40-
**Sensor entities** (per circuit):
41-
- Outside temperature, exhaust temperature
42-
- Air volume, humidity (actual), humidity (target)
43-
- Operation mode, active week program, active day program, program air volume
40+
**Sensor entities** (per circuit, filtered by type):
41+
- **HV:** Outside temperature, exhaust temperature, air volume, humidity (actual/target), program air volume
42+
- **HK:** Outside temperature, flow temperature (actual/target), room temperature setpoint
43+
- **BL:** Heat generator temperature (actual/target), return temperature, operating hours, operating hours >50%, switching cycles, heat produced, electrical energy consumed
44+
- **WW:** Hot water setpoint, tank temperature top (SF1), tank temperature bottom (SF2)
45+
- **All:** Operation mode, active week program, active day program
4446

4547
**Plant-level sensors:**
4648
- Weather condition and forecast temperature
@@ -69,7 +71,8 @@ Plants and circuits are discovered automatically from your account.
6971

7072
### Known Limitations
7173

72-
- **HV and HK circuits only.** Boiler (BL), warm water (WW), solar (SOL), and other circuit types are not yet implemented.
74+
- **HV, HK, BL, and WW circuits only.** Solar (SOL), fresh water (FRIWA), and other circuit types are not yet implemented.
75+
- **BL energy sensors (MWh):** Heat produced and electrical energy consumed are displayed in MWh — unit not yet verified against all Hoval models, may need adjustment.
7376
- **No time program editing.** Time programs can be read but not modified through the integration.
7477
- **No energy/temperature history.** Historical statistics endpoints are documented but not yet integrated.
7578
- **No holiday mode control.**

custom_components/hoval_connect/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
"iot_class": "cloud_polling",
1010
"issue_tracker": "https://github.com/trcyberoptic/hoval-connect-api/issues",
1111
"requirements": [],
12-
"version": "0.12.3"
12+
"version": "0.13.0"
1313
}

0 commit comments

Comments
 (0)