From 5deea0a27c5955c8a0bf6551fa0d16e1c8e15281 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 25 Jun 2026 21:38:50 +0000 Subject: [PATCH] =?UTF-8?q?Map=20main=5Fheating=5Fcontrols=20on=20full-SAP?= =?UTF-8?q?=20certs=20for=20the=20FE=20panel=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- datatypes/epc/domain/mapper.py | 8 ++++++++ datatypes/epc/schema/sap_schema_17_1.py | 1 + 2 files changed, 9 insertions(+) diff --git a/datatypes/epc/domain/mapper.py b/datatypes/epc/domain/mapper.py index 500a72cd..c1360e86 100644 --- a/datatypes/epc/domain/mapper.py +++ b/datatypes/epc/domain/mapper.py @@ -817,6 +817,14 @@ class EpcPropertyDataMapper: main_heating=EpcPropertyDataMapper._map_energy_elements( schema.main_heating ), + # First control system if multiple — mirrors from_rdsap_schema_21_0_1. + main_heating_controls=( + EpcPropertyDataMapper._map_energy_element( + schema.main_heating_controls[0] + ) + if schema.main_heating_controls + else None + ), window=( EpcPropertyDataMapper._map_energy_element(schema.windows) if schema.windows is not None diff --git a/datatypes/epc/schema/sap_schema_17_1.py b/datatypes/epc/schema/sap_schema_17_1.py index 8f6fc2da..5cad983c 100644 --- a/datatypes/epc/schema/sap_schema_17_1.py +++ b/datatypes/epc/schema/sap_schema_17_1.py @@ -220,6 +220,7 @@ class SapSchema17_1: # reads. Dropped by the WIP mapper → all "Unknown" on the FE (ADR-0037). # Full-SAP lodges windows under the plural key (a single element, not a list). main_heating: List[EnergyElement] = field(default_factory=list) + main_heating_controls: List[EnergyElement] = field(default_factory=list) windows: Optional[EnergyElement] = None lighting: Optional[EnergyElement] = None hot_water: Optional[EnergyElement] = None