From a90f9e19645260d69812cdbf3f70e818aaac730f Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Thu, 20 Aug 2020 17:08:43 -0600 Subject: [PATCH 01/20] Initial changes for heat pump characterization. --- ...itary-Constant-Efficiency.RS0002.a205.json | 2 +- .../DX-Constant-Efficiency.RS0004.a205.json | 2 +- schema-source/RS0004.schema.yaml | 106 +++++++++++++++++- 3 files changed, 106 insertions(+), 4 deletions(-) diff --git a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json index 1b9fe47..3063948 100644 --- a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json +++ b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json @@ -42,7 +42,7 @@ }, "performance": { "compressor_control_method": "STAGED", - "cycling_degradation_coefficient": 0.25, + "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { "grid_variables": { "outdoor_coil_entering_dry_bulb_temperature": [ diff --git a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json index 31b88e2..3b0b7fc 100644 --- a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json +++ b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json @@ -21,7 +21,7 @@ }, "performance": { "compressor_control_method": "STAGED", - "cycling_degradation_coefficient": 0.25, + "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { "grid_variables": { "outdoor_coil_entering_dry_bulb_temperature": [ diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 6025ac7..a3efb61 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -66,17 +66,33 @@ Performance: Description: "Method used to control different speeds of the compressor" Data Type: "" Required: True - cycling_degradation_coefficient: - Description: "Cycling degradation coefficient (CD) as described in AHRI 210/240" + cooling_cycling_degradation_coefficient: + Description: "Cooling cycling degradation coefficient (C_D_^c^) as described in AHRI 210/240" Data Type: "Numeric" Units: "-" Range: ">=0.0,<1.0" Required: True Notes: "Used for the lowest stage where the unit cycles to meet a setpoint. *Informative note:* 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12." + heating_cycling_degradation_coefficient: + Description: "Heating cycling degradation coefficient (C_D_^h^) as described in AHRI 210/240" + Data Type: "Numeric" + Units: "-" + Range: ">=0.0,<1.0" + Notes: "Used for the lowest stage where the unit cycles to meet a setpoint. *Informative note:* 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12." + integrated_electric_resistance_heating_capacity: + Description: "Pre-installed electric resistance heating capacity" + Data Type: "Numeric" + Units: "W" + Range: ">=0" + Notes: "Often used as auxilliary or backup heating source" performance_map_cooling: Description: "Data group describing cooling performance over a range of conditions" Data Type: "{PerformanceMapCooling}" Required: True + performance_map_heating: + Description: "Data group describing heating performance over a range of conditions" + Data Type: "{PerformanceMapHeating}" + Notes: "Required for heat pump capable systems" performance_map_standby: Description: "Data group describing standby performance" Data Type: "{PerformanceMapStandby}" @@ -162,6 +178,92 @@ LookupVariablesCooling: Required: True Notes: "Does not include power drawn by the indoor fan. Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater." +PerformanceMapHeating: + Object Type: "Performance Map" + Data Elements: + grid_variables: + Description: "Data group defining the grid variables for heating performance" + Data Type: "{GridVariablesHeating}" + Required: True + lookup_variables: + Description: "Data group defining the lookup variables for heating performance" + Data Type: "{LookupVariablesHeating}" + Required: True + +GridVariablesHeating: + Object Type: "Grid Variables" + Data Elements: + outdoor_coil_entering_dry_bulb_temperature: + Description: "Dry bulb temperature of the air entering the outdoor coil" + Data Type: "[Numeric][1..]" + Range: ">=0" + Units: "K" + Required: True + outdoor_coil_entering_relative_humidity: + Description: "Relative humidity of the air entering the outdoor coil" + Data Type: "[Numeric][1..]" + Range: ">=0,<=1.0" + Units: "-" + Required: True + indoor_coil_entering_dry_bulb_temperature: + Description: "Dry bulb temperature of the air entering the indoor coil" + Data Type: "[Numeric][1..]" + Range: ">=0" + Units: "K" + Required: True + Notes: "As measured immediately before entering the coil (i.e., after the fan in a blow-through configuration)." + indoor_coil_air_mass_flow_rate: + Description: "Mass flow rate of air entering the indoor coil" + Data Type: "[Numeric][1..]" + Range: ">0" + Units: "kg/s" + Required: True + compressor_sequence_number: + Description: "Index indicating the relative order of the compressor speed/stage" + Data Type: "[Numeric][1..]" + Range: ">=0" + Units: "-" + Notes: "Expressed in order from initial stage/speed to final stage/speed." + Required: True + +LookupVariablesHeating: + Object Type: "Lookup Variables" + Data Elements: + gross_steady_state_heating_capacity: + Description: "Total heat added by the indoor coil under steady-state conditions (i.e., does not include the impact of defrost)" + Data Type: "[Numeric/Null][1..]" + Range: ">0" + Units: "W" + Required: True + Notes: "Does not account for heat added by the fan." + gross_integrated_heating_capacity: + Description: "Total heat added by the indoor coil integrated over a complete defrost cycle" + Data Type: "[Numeric/Null][1..]" + Range: ">0" + Units: "W" + Required: True + Notes: "Does not account for heat added by the fan." + gross_steady_state_heating_power: + Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include defrost related power draws)" + Data Type: "[Numeric/Null][1..]" + Range: ">0" + Units: "W" + Required: True + Notes: "Does not include power drawn by the indoor fan. Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater." + gross_integrated_heating_power: + Description: "Gross power draw of the outdoor unit integrated over a complete defrost cycle" + Data Type: "[Numeric/Null][1..]" + Range: ">0" + Units: "W" + Required: True + Notes: "Does not include power drawn by the indoor fan. Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost proces, controls, and any sump heater." + defrost_time_fraction: + Description: "Fraction of time throughout a defrost cycle that defrost process is engaged" + Data Type: "[Numeric/Null][1..]" + Range: ">=0,<=1.0" + Units: "-" + Required: True + PerformanceMapStandby: Object Type: "Performance Map" Data Elements: From 6e3d45e37de6bed5e8b63ce4efae0f135a03618a Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Fri, 3 Feb 2023 10:00:27 -0700 Subject: [PATCH 02/20] Update ASHP schema. --- schema-source/RS0002.schema.yaml | 34 ++++++++++++ schema-source/RS0004.schema.yaml | 6 -- schema-source/RS0008.schema.yaml | 94 ++++++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+), 6 deletions(-) create mode 100644 schema-source/RS0008.schema.yaml diff --git a/schema-source/RS0002.schema.yaml b/schema-source/RS0002.schema.yaml index fc3c1df..525fe7a 100644 --- a/schema-source/RS0002.schema.yaml +++ b/schema-source/RS0002.schema.yaml @@ -363,3 +363,37 @@ Performance: dx_system_representation: Description: "The corresponding Standard 205 direct expansion system representation" Data Type: "{RS0004}" + Required: True + supplemental_heat_source_representation: + Description: "The corresponding Standard 205 representation for a supplemental heat source." + Data Type: "{RS0008}" + Notes: [ + "TODO: May be electric resistance or fuel burner (RSs to be developed). Need to handle field installed supplemental heat sources? Position (move to flexible list)?", + "***Informative note:*** Also referred to as auxiliary, or backup heat source." + ] + compressor_and_fan_control_sequence: + Description: "A control sequence mapping fan speeds to compressor speeds." + Data Type: "{CompressorAndFanControlSequence}" + +CompressorAndFanControlSequence: + Object Type: "Data Group" + Data Elements: + compressor_sequence_number: + Description: "Index indicating the relative order of the compressor speed/stage" + Data Type: "[Numeric][1..]" + Constraints: ">=0" + Units: "-" + Notes: "Expressed in order from initial stage/speed to final stage/speed." + Required: True + fan_speed_number: + Description: "Corresponding discrete speed." + Data Type: "[Integer][1..]" + Constraints: ">=0" + Units: "-" + Required: "if ..indoor_fan_representation.operation_speed_control_type = DISCRETE" + air_volumetric_flow_rate: + Description: "Volumetric air flow rate through fan assembly at standard air conditions" + Data Type: "[Numeric][1..]" + Constraints: ">=0.0" + Units: "m3/s" + Required: "if ..indoor_fan_representation.operation_speed_control_type = CONTINUOUS" diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 16503fc..9818e7d 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -79,12 +79,6 @@ Performance: Constraints: [">=0.0","<1.0"] Notes: ["Used for the lowest stage when the unit cycles to meet load", "***Informative note:*** 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12"] - integrated_electric_resistance_heating_capacity: - Description: "Pre-installed electric resistance heating capacity" - Data Type: "Numeric" - Units: "W" - Constraints: ">=0" - Notes: "Often used as auxilliary or backup heating source" performance_map_cooling: Description: "Data group describing cooling performance over a range of conditions" Data Type: "{PerformanceMapCooling}" diff --git a/schema-source/RS0008.schema.yaml b/schema-source/RS0008.schema.yaml new file mode 100644 index 0000000..b9b81c6 --- /dev/null +++ b/schema-source/RS0008.schema.yaml @@ -0,0 +1,94 @@ +Schema: + Object Type: "Meta" + References: + - "ASHRAE205" + Title: "Electric Heating Coil" + Description: "Schema for ASHRAE 205 annex RS0008: Electric Heating Coil" + Version: "1.0.0" + Root Data Group: "RS0008" + +# Data Groups +RS000X: + Object Type: "Data Group" + Data Elements: + metadata: + Description: "Metadata data group" + Data Type: "{Metadata}" + Constraints: "schema=RS0008" + Required: True + description: + Description: "Data group describing product and rating information" + Data Type: "{Description}" + performance: + Description: "Data group containing performance information" + Data Type: "{Performance}" + Required: True + +Description: + Object Type: "Data Group" + Data Elements: + product_information: + Description: "Data group describing product information" + Data Type: "{ProductInformation}" + +ProductInformation: + Object Type: "Data Group" + Data Elements: + manufacturer: + Description: "Manufacturer name" + Data Type: "String" + model_number: + Description: "Model number" + Data Type: "Pattern" + Notes: "Pattern shall match all model numbers that can be represented by the representation" + nominal_voltage: + Description: "Nominal voltage" + Data Type: "Numeric" + Units: "V" + Constraints: ">=0.0" + nominal_frequency: + Description: "Nominal frequency" + Data Type: "Numeric" + Units: "Hz" + Constraints: ">=0.0" + +Performance: + Object Type: "Data Group" + Data Elements: + performance_map: + Description: "Data group describing drive performance when operating" + Data Type: "{PerformanceMap}" + Required: True + +PerformanceMap: + Object Type: "Performance Map" + Data Elements: + grid_variables: + Description: "Data group describing grid variables for drive performance" + Data Type: "{GridVariables}" + Required: True + lookup_variables: + Description: "Data group describing lookup variables for drive performance" + Data Type: "{LookupVariables}" + Required: True + +GridVariables: + Object Type: "Grid Variables" + Data Elements: + heating_stage_number: + Description: "Index indicating the relative order of the heating stage" + Data Type: "[Numeric][1..]" + Constraints: ">=0" + Units: "-" + Notes: "Expressed in order from initial stage to final stage." + Required: True + +LookupVariables: + Object Type: "Lookup Variables" + Data Elements: + heating_capacity: + Description: "Heating capacity" + Data Type: "[Numeric][1..]" + Constraints: ">=0.0" + Units: "W" + Required: True From c54e1e16b940c1aefbf751f7c9c0d9a7acc9a5bf Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Mon, 30 Sep 2024 11:06:11 -0600 Subject: [PATCH 03/20] Clean up teminology for heating operation. --- schema-source/RS0004.schema.yaml | 46 +++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 30a9506..94f18cc 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -220,7 +220,7 @@ GridVariablesHeating: Constraints: ">=0" Units: "K" Required: True - Notes: "As measured immediately before entering the coil (i.e., after the fan in a blow-through configuration)." + Notes: "As measured immediately before entering the coil (i.e., after the fan in a blow-through configuration)" indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" @@ -233,46 +233,62 @@ GridVariablesHeating: Data Type: "[Numeric][1..]" Constraints: ">=0" Units: "-" - Notes: "Expressed in order from initial stage/speed to final stage/speed." + Notes: "Expressed in order from initial stage/speed to final stage/speed" Required: True LookupVariablesHeating: Object Type: "Lookup Variables" Data Elements: - gross_steady_state_heating_capacity: - Description: "Total heat added by the indoor coil under steady-state conditions (i.e., does not include the impact of defrost)" + gross_steady_state_capacity: + Description: "Total heat added by the indoor coil under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" Data Type: "[Numeric][1..]" Constraints: ">0" Units: "W" Required: True Scalable: True - Notes: "Does not account for heat added by the fan." - gross_integrated_heating_capacity: - Description: "Total heat added by the indoor coil integrated over a complete defrost cycle" + Notes: + - "Sometimes also referred to as \"instantaneous\" capacity" + - "Does not account for heat added by the fan" + gross_integrated_capacity: + Description: "Total heat added by the indoor coil integrated over the time between defrost terminations" Data Type: "[Numeric][1..]" Constraints: ">0" Units: "W" Required: True Scalable: True - Notes: "Does not account for heat added by the fan." - gross_steady_state_heating_power: - Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include defrost related power draws)" + Notes: + - "Sometimes referred to as \"frost accumulation\" capacity" + - "Does not account for heat added by the fan" + gross_steady_state_power: + Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" Data Type: "[Numeric][1..]" Constraints: ">0" Units: "W" Required: True Scalable: True - Notes: "Does not include power drawn by the indoor fan. Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater." - gross_integrated_heating_power: - Description: "Gross power draw of the outdoor unit integrated over a complete defrost cycle" + Notes: + - "Sometimes also referred to as \"instantaneous\" power" + - "Does not include power drawn by the indoor fan" + - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater" + gross_integrated_power: + Description: "Gross power draw of the outdoor unit integrated over the time between defrost terminations" Data Type: "[Numeric][1..]" Constraints: ">0" Units: "W" Required: True Scalable: True - Notes: "Does not include power drawn by the indoor fan. Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost process, controls, and any sump heater." + Notes: + - "Sometimes referred to as \"frost accumulation\" power" + - "Does not include power drawn by the indoor fan" + - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost process, controls, and any sump heater" + defrost_cycle_frequency: + Description: "Frequency of defrost terminations under the current operating conditions" + Data Type: "[Numeric][1..]" + Units: "Hz" + Required: True + Note: "This is the inverse of the duration between defrost terminations, a value of zero implies defrost is not occurring" defrost_time_fraction: - Description: "Fraction of time throughout a defrost cycle that defrost process is engaged" + Description: "Fraction of time between defrost terminations that the defrost process is engaged" Data Type: "[Numeric][1..]" Constraints: [">=0","<=1.0"] Units: "-" From 7d34177d692f24ff72de73e81b455a76f23edc35 Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Mon, 30 Sep 2024 11:14:28 -0600 Subject: [PATCH 04/20] Remove out-of-scope changes. --- schema-source/RS0002.schema.yaml | 35 ------------ schema-source/RS0008.schema.yaml | 94 -------------------------------- 2 files changed, 129 deletions(-) delete mode 100644 schema-source/RS0008.schema.yaml diff --git a/schema-source/RS0002.schema.yaml b/schema-source/RS0002.schema.yaml index 46698fd..8284aeb 100644 --- a/schema-source/RS0002.schema.yaml +++ b/schema-source/RS0002.schema.yaml @@ -4,7 +4,6 @@ Schema: - "ASHRAE205" - "RS0003" - "RS0004" - - "RS0008" Title: "Unitary Cooling Air-Conditioning Equipment" Description: "Schema for ASHRAE 205 annex RS0002: Unitary Cooling Air-Conditioning Equipment" Version: "2.0.0" @@ -219,41 +218,7 @@ Performance: Description: "The corresponding Standard 205 direct expansion system representation" Data Type: "{RS0004}" Required: True - supplemental_heat_source_representation: - Description: "The corresponding Standard 205 representation for a supplemental heat source." - Data Type: "{RS0008}" - Notes: [ - "TODO: May be electric resistance or fuel burner (RSs to be developed). Need to handle field installed supplemental heat sources? Position (move to flexible list)?", - "***Informative note:*** Also referred to as auxiliary, or backup heat source." - ] - compressor_and_fan_control_sequence: - Description: "A control sequence mapping fan speeds to compressor speeds." - Data Type: "{CompressorAndFanControlSequence}" scaling: Description: "Specifies the range the performance data can be scaled to represent different capacity equipment" Data Type: "{Scaling}" Notes: "If not present, scaling of the performance data is not allowed" - -CompressorAndFanControlSequence: - Object Type: "Data Group" - Data Elements: - compressor_sequence_number: - Description: "Index indicating the relative order of the compressor speed/stage" - Data Type: "[Numeric][1..]" - Constraints: ">=0" - Units: "-" - Notes: "Expressed in order from initial stage/speed to final stage/speed." - Required: True - fan_speed_number: - Description: "Corresponding discrete speed." - Data Type: "[Integer][1..]" - Constraints: ">=0" - Units: "-" - Required: "if ..indoor_fan_representation.operation_speed_control_type = DISCRETE" - air_volumetric_flow_rate: - Description: "Volumetric air flow rate through fan assembly at standard air conditions" - Data Type: "[Numeric][1..]" - Constraints: ">=0.0" - Units: "m3/s" - Required: "if ..indoor_fan_representation.operation_speed_control_type = CONTINUOUS" - Scalable: True diff --git a/schema-source/RS0008.schema.yaml b/schema-source/RS0008.schema.yaml deleted file mode 100644 index cb9093e..0000000 --- a/schema-source/RS0008.schema.yaml +++ /dev/null @@ -1,94 +0,0 @@ -Schema: - Object Type: "Meta" - References: - - "ASHRAE205" - Title: "Electric Heating Coil" - Description: "Schema for ASHRAE 205 annex RS0008: Electric Heating Coil" - Version: "1.0.0" - Root Data Group: "RS0008" - -# Data Groups -RS0008: - Object Type: "Data Group" - Data Elements: - metadata: - Description: "Metadata data group" - Data Type: "{Metadata}" - Constraints: "schema=RS0008" - Required: True - description: - Description: "Data group describing product and rating information" - Data Type: "{Description}" - performance: - Description: "Data group containing performance information" - Data Type: "{Performance}" - Required: True - -Description: - Object Type: "Data Group" - Data Elements: - product_information: - Description: "Data group describing product information" - Data Type: "{ProductInformation}" - -ProductInformation: - Object Type: "Data Group" - Data Elements: - manufacturer: - Description: "Manufacturer name" - Data Type: "String" - model_number: - Description: "Model number" - Data Type: "Pattern" - Notes: "Pattern shall match all model numbers that can be represented by the representation" - nominal_voltage: - Description: "Nominal voltage" - Data Type: "Numeric" - Units: "V" - Constraints: ">=0.0" - nominal_frequency: - Description: "Nominal frequency" - Data Type: "Numeric" - Units: "Hz" - Constraints: ">=0.0" - -Performance: - Object Type: "Data Group" - Data Elements: - performance_map: - Description: "Data group describing drive performance when operating" - Data Type: "{PerformanceMap}" - Required: True - -PerformanceMap: - Object Type: "Performance Map" - Data Elements: - grid_variables: - Description: "Data group describing grid variables for drive performance" - Data Type: "{GridVariables}" - Required: True - lookup_variables: - Description: "Data group describing lookup variables for drive performance" - Data Type: "{LookupVariables}" - Required: True - -GridVariables: - Object Type: "Grid Variables" - Data Elements: - heating_stage_number: - Description: "Index indicating the relative order of the heating stage" - Data Type: "[Numeric][1..]" - Constraints: ">=0" - Units: "-" - Notes: "Expressed in order from initial stage to final stage." - Required: True - -LookupVariables: - Object Type: "Lookup Variables" - Data Elements: - heating_capacity: - Description: "Heating capacity" - Data Type: "[Numeric][1..]" - Constraints: ">=0.0" - Units: "W" - Required: True From 6983be835eb4ae5f0f5a01c6b3163c3d9bf01809 Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Wed, 9 Oct 2024 12:02:50 -0600 Subject: [PATCH 05/20] Add operating modes. --- ...Unitary-Constant-Efficiency.RS0002.a205.json | 1 + examples/RS0002/residential-unitary.RS0002.json | 3 ++- .../DX-Constant-Efficiency.RS0004.a205.json | 1 + examples/RS0004/HPDM.RS0004.a205.json | 1 + examples/RS0004/residential-dx.RS0004.json | 1 + schema-source/ASHRAE205.schema.yaml | 17 +++++++++++++++++ schema-source/RS0004.schema.yaml | 11 ++++++++--- schema205/json_translate.py | 2 ++ 8 files changed, 33 insertions(+), 4 deletions(-) diff --git a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json index 10c8eda..66225de 100644 --- a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json +++ b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json @@ -43,6 +43,7 @@ } }, "performance": { + "operating_modes": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { diff --git a/examples/RS0002/residential-unitary.RS0002.json b/examples/RS0002/residential-unitary.RS0002.json index fdaab7e..6b111ed 100644 --- a/examples/RS0002/residential-unitary.RS0002.json +++ b/examples/RS0002/residential-unitary.RS0002.json @@ -296,6 +296,7 @@ "disclaimer": "This data is synthetic and does not represent any physical products." }, "performance": { + "operating_modes": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cycling_degradation_coefficient": 0.1, "performance_map_cooling": { @@ -8555,4 +8556,4 @@ } } } -} \ No newline at end of file +} diff --git a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json index 3417674..7301183 100644 --- a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json +++ b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json @@ -21,6 +21,7 @@ } }, "performance": { + "operating_modes": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { diff --git a/examples/RS0004/HPDM.RS0004.a205.json b/examples/RS0004/HPDM.RS0004.a205.json index 5b125e0..99ee358 100644 --- a/examples/RS0004/HPDM.RS0004.a205.json +++ b/examples/RS0004/HPDM.RS0004.a205.json @@ -22,6 +22,7 @@ } }, "performance": { + "operating_modes": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.1, "performance_map_cooling": { diff --git a/examples/RS0004/residential-dx.RS0004.json b/examples/RS0004/residential-dx.RS0004.json index 8c341c0..1b4cd92 100644 --- a/examples/RS0004/residential-dx.RS0004.json +++ b/examples/RS0004/residential-dx.RS0004.json @@ -11,6 +11,7 @@ "disclaimer": "This data is synthetic and does not represent any physical products." }, "performance": { + "operating_modes": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cycling_degradation_coefficient": 0.1, "performance_map_cooling": { diff --git a/schema-source/ASHRAE205.schema.yaml b/schema-source/ASHRAE205.schema.yaml index 4cfe2e6..328a509 100644 --- a/schema-source/ASHRAE205.schema.yaml +++ b/schema-source/ASHRAE205.schema.yaml @@ -191,6 +191,23 @@ OperationState: Description: "Indicates that the equipment is in standby operating state" Display Text: "Standby" +OperatingMode: + Object Type: "Enumeration" + Enumerators: + COOLING: + Description: "Indicates that the equipment is capable of meeting a sensible cooling load" + Display Text: "Cooling" + HEATING: + Description: "Indicates that the equipment is capable of meeting a sensible heating load" + Display Text: "Heating" + DEHUMIDIFYING: + Description: "Indicates that the equipment is capable of meeting a dehumidification load" + Display Text: "Dehumidifying" + HUMIDIFYING: + Description: "Indicates that the equipment is capable of meeting a humidification load" + Display Text: "Humidifying" + + #Common Data Groups Metadata: Object Type: "Data Group" diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 94f18cc..7369eb1 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -60,6 +60,11 @@ ProductInformation: Performance: Object Type: "Data Group" Data Elements: + operating_modes: + Description: "An array of unique operating modes that indicate the capabilities of the equipment" + Data Type: "[]" + # TODO: Constraints: unique https://json-schema.org/understanding-json-schema/reference/array#uniqueItems + Required: True compressor_speed_control_type: Description: "Method used to control different speeds of the compressor" Data Type: "" @@ -86,11 +91,11 @@ Performance: performance_map_cooling: Description: "Data group describing cooling performance over a range of conditions" Data Type: "{PerformanceMapCooling}" - Required: True + Required: "if operating_modes contains(COOLING)" performance_map_heating: Description: "Data group describing heating performance over a range of conditions" Data Type: "{PerformanceMapHeating}" - Notes: "Required for heat pump capable systems" + Required: "if operating_modes contains(HEATING)" performance_map_standby: Description: "Data group describing standby performance" Data Type: "{PerformanceMapStandby}" @@ -286,7 +291,7 @@ LookupVariablesHeating: Data Type: "[Numeric][1..]" Units: "Hz" Required: True - Note: "This is the inverse of the duration between defrost terminations, a value of zero implies defrost is not occurring" + Notes: "This is the inverse of the duration between defrost terminations, a value of zero implies defrost is not occurring" defrost_time_fraction: Description: "Fraction of time between defrost terminations that the defrost process is engaged" Data Type: "[Numeric][1..]" diff --git a/schema205/json_translate.py b/schema205/json_translate.py index 7a9dbf0..482128c 100644 --- a/schema205/json_translate.py +++ b/schema205/json_translate.py @@ -173,6 +173,8 @@ def _construct_requirement_if_then( for req in requirement_list: m = re.match(dependent_req, req) if m: + if "contains" in req: + break # TODO: Skip for now. Implement in lattice. selector = m.group("selector") if m.group("is_equal"): is_equal = False if "!" in m.group("is_equal") else True From bed894391b42689674eeb961d7d68cdf9b8354a8 Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Tue, 15 Oct 2024 11:07:52 -0600 Subject: [PATCH 06/20] Modify performance capabilities enumeration. --- schema-source/ASHRAE205.schema.yaml | 18 +++++++++--------- schema-source/RS0004.schema.yaml | 11 ++++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/schema-source/ASHRAE205.schema.yaml b/schema-source/ASHRAE205.schema.yaml index 328a509..c6bfc4a 100644 --- a/schema-source/ASHRAE205.schema.yaml +++ b/schema-source/ASHRAE205.schema.yaml @@ -191,21 +191,21 @@ OperationState: Description: "Indicates that the equipment is in standby operating state" Display Text: "Standby" -OperatingMode: +PerformanceCapabilities: Object Type: "Enumeration" Enumerators: COOLING: - Description: "Indicates that the equipment is capable of meeting a sensible cooling load" + Description: "Indicates that the equipment provides controlled cooling and the representation contains cooling-related performance data" Display Text: "Cooling" HEATING: - Description: "Indicates that the equipment is capable of meeting a sensible heating load" + Description: "Indicates that the equipment provides controlled heating and the representation contains heating-related performance data" Display Text: "Heating" - DEHUMIDIFYING: - Description: "Indicates that the equipment is capable of meeting a dehumidification load" - Display Text: "Dehumidifying" - HUMIDIFYING: - Description: "Indicates that the equipment is capable of meeting a humidification load" - Display Text: "Humidifying" + DEHUMIDIFICATION: + Description: "Indicates that the equipment provides controlled dehumidification and the representation contains dehumidification-related performance data" + Display Text: "Dehumidification" + HUMIDIFICATION: + Description: "Indicates that the equipment provides controlled humidification and the representation contains humidification-related performance data" + Display Text: "Humidification" #Common Data Groups diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 7369eb1..23c8f79 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -60,9 +60,9 @@ ProductInformation: Performance: Object Type: "Data Group" Data Elements: - operating_modes: + performance_capabilities: Description: "An array of unique operating modes that indicate the capabilities of the equipment" - Data Type: "[]" + Data Type: "[]" # TODO: Constraints: unique https://json-schema.org/understanding-json-schema/reference/array#uniqueItems Required: True compressor_speed_control_type: @@ -74,7 +74,7 @@ Performance: Data Type: "Numeric" Units: "-" Constraints: [">=0.0","<1.0"] - Required: True + Required: "if performance_capabilities contains(COOLING)" Notes: ["Used for the lowest stage when the unit cycles to meet load", "***Informative note:*** 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12"] heating_cycling_degradation_coefficient: @@ -82,6 +82,7 @@ Performance: Data Type: "Numeric" Units: "-" Constraints: [">=0.0","<1.0"] + Required: "if performance_capabilities contains(HEATING)" Notes: ["Used for the lowest stage when the unit cycles to meet load", "***Informative note:*** 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12"] scaling: @@ -91,11 +92,11 @@ Performance: performance_map_cooling: Description: "Data group describing cooling performance over a range of conditions" Data Type: "{PerformanceMapCooling}" - Required: "if operating_modes contains(COOLING)" + Required: "if performance_capabilities contains(COOLING)" performance_map_heating: Description: "Data group describing heating performance over a range of conditions" Data Type: "{PerformanceMapHeating}" - Required: "if operating_modes contains(HEATING)" + Required: "if performance_capabilities contains(HEATING)" performance_map_standby: Description: "Data group describing standby performance" Data Type: "{PerformanceMapStandby}" From cd60c2dadef947fd54b6685b687cc18e9d8ec67a Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Tue, 15 Oct 2024 13:44:00 -0600 Subject: [PATCH 07/20] Update example files. --- examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json | 2 +- examples/RS0002/residential-unitary.RS0002.json | 2 +- examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json | 2 +- examples/RS0004/HPDM.RS0004.a205.json | 2 +- examples/RS0004/residential-dx.RS0004.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json index 66225de..e0938ad 100644 --- a/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json +++ b/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json @@ -43,7 +43,7 @@ } }, "performance": { - "operating_modes": ["COOLING"], + "performance_capabilities": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { diff --git a/examples/RS0002/residential-unitary.RS0002.json b/examples/RS0002/residential-unitary.RS0002.json index 6b111ed..395d3eb 100644 --- a/examples/RS0002/residential-unitary.RS0002.json +++ b/examples/RS0002/residential-unitary.RS0002.json @@ -296,7 +296,7 @@ "disclaimer": "This data is synthetic and does not represent any physical products." }, "performance": { - "operating_modes": ["COOLING"], + "performance_capabilities": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cycling_degradation_coefficient": 0.1, "performance_map_cooling": { diff --git a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json index 7301183..b445078 100644 --- a/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json +++ b/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json @@ -21,7 +21,7 @@ } }, "performance": { - "operating_modes": ["COOLING"], + "performance_capabilities": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.25, "performance_map_cooling": { diff --git a/examples/RS0004/HPDM.RS0004.a205.json b/examples/RS0004/HPDM.RS0004.a205.json index 99ee358..a03f4ca 100644 --- a/examples/RS0004/HPDM.RS0004.a205.json +++ b/examples/RS0004/HPDM.RS0004.a205.json @@ -22,7 +22,7 @@ } }, "performance": { - "operating_modes": ["COOLING"], + "performance_capabilities": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cooling_cycling_degradation_coefficient": 0.1, "performance_map_cooling": { diff --git a/examples/RS0004/residential-dx.RS0004.json b/examples/RS0004/residential-dx.RS0004.json index 1b4cd92..231d5e3 100644 --- a/examples/RS0004/residential-dx.RS0004.json +++ b/examples/RS0004/residential-dx.RS0004.json @@ -11,7 +11,7 @@ "disclaimer": "This data is synthetic and does not represent any physical products." }, "performance": { - "operating_modes": ["COOLING"], + "performance_capabilities": ["COOLING"], "compressor_speed_control_type": "DISCRETE", "cycling_degradation_coefficient": 0.1, "performance_map_cooling": { From 8b6c1695c5eb5e27db9f055e0bcd50d9a79225e5 Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Wed, 6 Nov 2024 10:52:32 -0700 Subject: [PATCH 08/20] Make performance capabilities explicitly controlled. --- schema-source/ASHRAE205.schema.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/schema-source/ASHRAE205.schema.yaml b/schema-source/ASHRAE205.schema.yaml index c6bfc4a..2b99a94 100644 --- a/schema-source/ASHRAE205.schema.yaml +++ b/schema-source/ASHRAE205.schema.yaml @@ -195,16 +195,16 @@ PerformanceCapabilities: Object Type: "Enumeration" Enumerators: COOLING: - Description: "Indicates that the equipment provides controlled cooling and the representation contains cooling-related performance data" + Description: "Indicates that the equipment provides explicitly controlled cooling and the representation contains cooling-related performance data" Display Text: "Cooling" HEATING: - Description: "Indicates that the equipment provides controlled heating and the representation contains heating-related performance data" + Description: "Indicates that the equipment provides explicitly controlled heating and the representation contains heating-related performance data" Display Text: "Heating" DEHUMIDIFICATION: - Description: "Indicates that the equipment provides controlled dehumidification and the representation contains dehumidification-related performance data" + Description: "Indicates that the equipment provides explicitly controlled dehumidification and the representation contains dehumidification-related performance data" Display Text: "Dehumidification" HUMIDIFICATION: - Description: "Indicates that the equipment provides controlled humidification and the representation contains humidification-related performance data" + Description: "Indicates that the equipment provides explicitly controlled humidification and the representation contains humidification-related performance data" Display Text: "Humidification" From d62231fd8f7f4335b769efd69f60032f1f4f0f0d Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Mon, 21 Jul 2025 13:31:11 -0500 Subject: [PATCH 09/20] Remove AHRI references. --- schema-source/RS0004.schema.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 23c8f79..2cbf8d1 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -70,21 +70,19 @@ Performance: Data Type: "" Required: True cooling_cycling_degradation_coefficient: - Description: "Cooling cycling degradation coefficient (C~D~^c^) as described in AHRI 210/240" + Description: "Cooling cycling degradation coefficient (C~D~^c^)" Data Type: "Numeric" Units: "-" Constraints: [">=0.0","<1.0"] Required: "if performance_capabilities contains(COOLING)" - Notes: ["Used for the lowest stage when the unit cycles to meet load", - "***Informative note:*** 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12"] + Notes: ["Used for the lowest stage when the unit cycles to meet load"] heating_cycling_degradation_coefficient: - Description: "Heating cycling degradation coefficient (C~D~^h^) as described in AHRI 210/240" + Description: "Heating cycling degradation coefficient (C~D~^h^)" Data Type: "Numeric" Units: "-" Constraints: [">=0.0","<1.0"] Required: "if performance_capabilities contains(HEATING)" - Notes: ["Used for the lowest stage when the unit cycles to meet load", - "***Informative note:*** 340/360 specifies a fixed cycling degradation coefficient of approximately 0.12"] + Notes: ["Used for the lowest stage when the unit cycles to meet load"] scaling: Description: "Specifies the range the performance data can be scaled to represent different capacity equipment" Data Type: "{Scaling}" From 7afeac767404c1273e8d993eed0db07175d94421 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Mon, 21 Jul 2025 13:32:31 -0500 Subject: [PATCH 10/20] Update constraints to include zero. --- schema-source/RS0004.schema.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 2cbf8d1..bdc1a7c 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -138,7 +138,7 @@ GridVariablesCooling: indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "kg/s" Required: True Scalable: True @@ -179,11 +179,11 @@ LookupVariablesCooling: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True - Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater", + Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater", "Shall not include power drawn by the indoor fan"] operation_state: Description: "The operation state at the operating conditions" @@ -326,8 +326,8 @@ LookupVariablesStandby: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True - Notes: "Includes any auxiliary power used by the unit's controls and any sump heater" + Notes: "Includes any auxiliary power used by the unit's controls and any crankcase heater" From aa480d1feeaab44d92a9135a46846f2c225ec27a Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Mon, 21 Jul 2025 13:39:52 -0500 Subject: [PATCH 11/20] Revert "Update constraints to include zero." This reverts commit 7afeac767404c1273e8d993eed0db07175d94421. --- schema-source/RS0004.schema.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index bdc1a7c..2cbf8d1 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -138,7 +138,7 @@ GridVariablesCooling: indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0.0" + Constraints: ">0.0" Units: "kg/s" Required: True Scalable: True @@ -179,11 +179,11 @@ LookupVariablesCooling: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">=0.0" + Constraints: ">0.0" Units: "W" Required: True Scalable: True - Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater", + Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater", "Shall not include power drawn by the indoor fan"] operation_state: Description: "The operation state at the operating conditions" @@ -326,8 +326,8 @@ LookupVariablesStandby: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">=0.0" + Constraints: ">0.0" Units: "W" Required: True Scalable: True - Notes: "Includes any auxiliary power used by the unit's controls and any crankcase heater" + Notes: "Includes any auxiliary power used by the unit's controls and any sump heater" From a4b7f4644766bee89ccb4430ceaffd93916aec48 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Mon, 21 Jul 2025 13:43:49 -0500 Subject: [PATCH 12/20] Update constraints to include 0 --- schema-source/RS0004.schema.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 2cbf8d1..2ee6d6c 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -138,7 +138,7 @@ GridVariablesCooling: indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "kg/s" Required: True Scalable: True @@ -179,7 +179,7 @@ LookupVariablesCooling: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True @@ -228,7 +228,7 @@ GridVariablesHeating: indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">0" + Constraints: ">=0" Units: "kg/s" Required: True Scalable: True @@ -246,7 +246,7 @@ LookupVariablesHeating: gross_steady_state_capacity: Description: "Total heat added by the indoor coil under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" Data Type: "[Numeric][1..]" - Constraints: ">0" + Constraints: ">=0" Units: "W" Required: True Scalable: True @@ -256,7 +256,7 @@ LookupVariablesHeating: gross_integrated_capacity: Description: "Total heat added by the indoor coil integrated over the time between defrost terminations" Data Type: "[Numeric][1..]" - Constraints: ">0" + Constraints: ">=0" Units: "W" Required: True Scalable: True @@ -266,7 +266,7 @@ LookupVariablesHeating: gross_steady_state_power: Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" Data Type: "[Numeric][1..]" - Constraints: ">0" + Constraints: ">=0" Units: "W" Required: True Scalable: True @@ -277,7 +277,7 @@ LookupVariablesHeating: gross_integrated_power: Description: "Gross power draw of the outdoor unit integrated over the time between defrost terminations" Data Type: "[Numeric][1..]" - Constraints: ">0" + Constraints: ">=0" Units: "W" Required: True Scalable: True @@ -326,7 +326,7 @@ LookupVariablesStandby: gross_power: Description: "Gross power draw (of the outdoor unit)" Data Type: "[Numeric][1..]" - Constraints: ">0.0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True From bf2585c48a378fce6f237a3a0230669a505f5c56 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Mon, 21 Jul 2025 13:44:27 -0500 Subject: [PATCH 13/20] Update "sump" to "crankcase" --- schema-source/RS0004.schema.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 2ee6d6c..09e1f05 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -183,7 +183,7 @@ LookupVariablesCooling: Units: "W" Required: True Scalable: True - Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater", + Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater", "Shall not include power drawn by the indoor fan"] operation_state: Description: "The operation state at the operating conditions" @@ -273,7 +273,7 @@ LookupVariablesHeating: Notes: - "Sometimes also referred to as \"instantaneous\" power" - "Does not include power drawn by the indoor fan" - - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any sump heater" + - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater" gross_integrated_power: Description: "Gross power draw of the outdoor unit integrated over the time between defrost terminations" Data Type: "[Numeric][1..]" @@ -284,7 +284,7 @@ LookupVariablesHeating: Notes: - "Sometimes referred to as \"frost accumulation\" power" - "Does not include power drawn by the indoor fan" - - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost process, controls, and any sump heater" + - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost process, controls, and any crankcase heater" defrost_cycle_frequency: Description: "Frequency of defrost terminations under the current operating conditions" Data Type: "[Numeric][1..]" @@ -330,4 +330,4 @@ LookupVariablesStandby: Units: "W" Required: True Scalable: True - Notes: "Includes any auxiliary power used by the unit's controls and any sump heater" + Notes: "Includes any auxiliary power used by the unit's controls and any crankcase heater" From dade30f56f7fd3468abedc09647d777c60b55cd0 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Tue, 22 Jul 2025 10:33:24 -0500 Subject: [PATCH 14/20] Remove dehumidification and humidification from performance capabilities --- schema-source/ASHRAE205.schema.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/schema-source/ASHRAE205.schema.yaml b/schema-source/ASHRAE205.schema.yaml index 2b99a94..d475d00 100644 --- a/schema-source/ASHRAE205.schema.yaml +++ b/schema-source/ASHRAE205.schema.yaml @@ -200,12 +200,13 @@ PerformanceCapabilities: HEATING: Description: "Indicates that the equipment provides explicitly controlled heating and the representation contains heating-related performance data" Display Text: "Heating" - DEHUMIDIFICATION: - Description: "Indicates that the equipment provides explicitly controlled dehumidification and the representation contains dehumidification-related performance data" - Display Text: "Dehumidification" - HUMIDIFICATION: - Description: "Indicates that the equipment provides explicitly controlled humidification and the representation contains humidification-related performance data" - Display Text: "Humidification" + # TODO: Reserved for future use + # DEHUMIDIFICATION: + # Description: "Indicates that the equipment provides explicitly controlled dehumidification and the representation contains dehumidification-related performance data" + # Display Text: "Dehumidification" + # HUMIDIFICATION: + # Description: "Indicates that the equipment provides explicitly controlled humidification and the representation contains humidification-related performance data" + # Display Text: "Humidification" #Common Data Groups From 8401ec71fd7625caa54ad8541603b41ad149d1f9 Mon Sep 17 00:00:00 2001 From: Tim McDowell Date: Mon, 25 Aug 2025 15:42:59 -0600 Subject: [PATCH 15/20] add defrost tables --- schema-source/RS0004.schema.yaml | 85 ++++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 26 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 09e1f05..26520fa 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -95,6 +95,10 @@ Performance: Description: "Data group describing heating performance over a range of conditions" Data Type: "{PerformanceMapHeating}" Required: "if performance_capabilities contains(HEATING)" + performance_map_defrost_degradation: + Description: "Data group describing heating performance degradation due to defrost operation over a range of conditions" + Data Type: "{PerformanceMapDefrostDegradation}" + Required: "if performance_capabilities contains(HEATING)" performance_map_standby: Description: "Data group describing standby performance" Data Type: "{PerformanceMapStandby}" @@ -212,12 +216,6 @@ GridVariablesHeating: Constraints: ">=0" Units: "K" Required: True - outdoor_coil_entering_relative_humidity: - Description: "Relative humidity of the air entering the outdoor coil" - Data Type: "[Numeric][1..]" - Constraints: [">=0","<=1.0"] - Units: "-" - Required: True indoor_coil_entering_dry_bulb_temperature: Description: "Dry bulb temperature of the air entering the indoor coil" Data Type: "[Numeric][1..]" @@ -253,16 +251,6 @@ LookupVariablesHeating: Notes: - "Sometimes also referred to as \"instantaneous\" capacity" - "Does not account for heat added by the fan" - gross_integrated_capacity: - Description: "Total heat added by the indoor coil integrated over the time between defrost terminations" - Data Type: "[Numeric][1..]" - Constraints: ">=0" - Units: "W" - Required: True - Scalable: True - Notes: - - "Sometimes referred to as \"frost accumulation\" capacity" - - "Does not account for heat added by the fan" gross_steady_state_power: Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" Data Type: "[Numeric][1..]" @@ -274,17 +262,62 @@ LookupVariablesHeating: - "Sometimes also referred to as \"instantaneous\" power" - "Does not include power drawn by the indoor fan" - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater" - gross_integrated_power: - Description: "Gross power draw of the outdoor unit integrated over the time between defrost terminations" + operation_state: + Description: "The operation state at the operating conditions" + Data Type: "[]" + Units: "-" + Required: True + +PerformanceMapDefrostDegradation: + Object Type: "Performance Map" + Data Elements: + grid_variables: + Description: "Data group defining the grid variables for heating performance degradation due to defrost operation" + Data Type: "{GridVariablesDefrostDegradation}" + Required: True + lookup_variables: + Description: "Data group defining the lookup variables for heating performance degradation due to defrost operation" + Data Type: "{LookupVariablesDefrostDegradation}" + Required: True + +GridVariablesDefrostDegradation: + Object Type: "Grid Variables" + Data Elements: + outdoor_coil_entering_dry_bulb_temperature: + Description: "Dry bulb temperature of the air entering the outdoor coil" Data Type: "[Numeric][1..]" Constraints: ">=0" - Units: "W" + Units: "K" + Required: True + outdoor_coil_entering_relative_humidity: + Description: "Relative humidity of the air entering the outdoor coil" + Data Type: "[Numeric][1..]" + Constraints: ">=0, <=1.0" + Units: "-" + Required: True + compressor_sequence_number: + Description: "Index indicating the relative order of the compressor speed/stage" + Data Type: "[Numeric][1..]" + Constraints: ">=0" + Units: "-" + Notes: "Expressed in order from initial stage/speed to final stage/speed" + Required: True + +LookupVariablesDefrostDegradation: + Object Type: "Lookup Variables" + Data Elements: + capacity_correction_factor: + Description: "Correction factor to the steady-state heat added by the indoor coil during defrost operation" + Data Type: "[Numeric][1..]" + Constraints: ">=0, <=1" + Units: "-" + Required: True + power_correction_factor: + Description: "Correction factor to the steady-state power draw of the outdoor unit during defrost operation" + Data Type: "[Numeric][1..]" + Constraints: ">=0, <=1" + Units: "-" Required: True - Scalable: True - Notes: - - "Sometimes referred to as \"frost accumulation\" power" - - "Does not include power drawn by the indoor fan" - - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's defrost process, controls, and any crankcase heater" defrost_cycle_frequency: Description: "Frequency of defrost terminations under the current operating conditions" Data Type: "[Numeric][1..]" @@ -294,9 +327,9 @@ LookupVariablesHeating: defrost_time_fraction: Description: "Fraction of time between defrost terminations that the defrost process is engaged" Data Type: "[Numeric][1..]" - Constraints: [">=0","<=1.0"] + Constraints: ">=0, <=1" Units: "-" - Required: True + Required: True PerformanceMapStandby: Object Type: "Performance Map" From 244e6e247e650870b8a28f8c2058334cc4e6674a Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Tue, 9 Sep 2025 11:01:17 -0600 Subject: [PATCH 16/20] Changes discussed on 9/9/25 SSPC 205 WG call. --- schema-source/RS0004.schema.yaml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 26520fa..4691141 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -241,8 +241,8 @@ GridVariablesHeating: LookupVariablesHeating: Object Type: "Lookup Variables" Data Elements: - gross_steady_state_capacity: - Description: "Total heat added by the indoor coil under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" + gross_frost_free_capacity: + Description: "Total heat added by the indoor coil when there is no frost forming on the coil" Data Type: "[Numeric][1..]" Constraints: ">=0" Units: "W" @@ -251,8 +251,8 @@ LookupVariablesHeating: Notes: - "Sometimes also referred to as \"instantaneous\" capacity" - "Does not account for heat added by the fan" - gross_steady_state_power: - Description: "Gross power draw of the outdoor unit under steady-state conditions (i.e., does not include the impact of frost accumulation or defrost operation)" + gross_frost_free_power: + Description: "Gross power draw of the outdoor unit when there is no frost forming on the coil" Data Type: "[Numeric][1..]" Constraints: ">=0" Units: "W" @@ -307,29 +307,25 @@ LookupVariablesDefrostDegradation: Object Type: "Lookup Variables" Data Elements: capacity_correction_factor: - Description: "Correction factor to the steady-state heat added by the indoor coil during defrost operation" + Description: "Correction factor to the frost-free heat added by the indoor coil over the time between defrost terminations" Data Type: "[Numeric][1..]" Constraints: ">=0, <=1" Units: "-" Required: True power_correction_factor: - Description: "Correction factor to the steady-state power draw of the outdoor unit during defrost operation" + Description: "Correction factor to the frost-free power draw due to the defrost time fraction" Data Type: "[Numeric][1..]" - Constraints: ">=0, <=1" + Constraints: ">=0" Units: "-" Required: True - defrost_cycle_frequency: - Description: "Frequency of defrost terminations under the current operating conditions" - Data Type: "[Numeric][1..]" - Units: "Hz" - Required: True - Notes: "This is the inverse of the duration between defrost terminations, a value of zero implies defrost is not occurring" + Notes: "A factor greater than 1.0 implies electric strip heat is used to defrost the outdoor coil rather than using a reverse cycle" defrost_time_fraction: Description: "Fraction of time between defrost terminations that the defrost process is engaged" Data Type: "[Numeric][1..]" Constraints: ">=0, <=1" Units: "-" - Required: True + Required: True + Note: "This value is used by the application software to determine when to apply supplemental heating during defrost" PerformanceMapStandby: Object Type: "Performance Map" From 5f75e6bd2d2ec0e8aa86fb31bb3667da1ce5b0d0 Mon Sep 17 00:00:00 2001 From: Tim McDowell Date: Mon, 29 Sep 2025 11:40:20 -0600 Subject: [PATCH 17/20] ISC edits --- schema-source/RS0004.schema.yaml | 46 +++++++++++++++++--------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 4691141..2a3ef07 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -231,11 +231,12 @@ GridVariablesHeating: Required: True Scalable: True compressor_sequence_number: - Description: "Index indicating the relative order of the compressor speed/stage" - Data Type: "[Numeric][1..]" - Constraints: ">=0" + Description: "Index indicating the relative capacity order of the compressor speed/stage expressed in order from lowest capacity (starting at 1) to highest capacity" + Data Type: "[Integer][1..]" + Constraints: ">=1" Units: "-" - Notes: "Expressed in order from initial stage/speed to final stage/speed" + Notes: ["If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", + "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] Required: True LookupVariablesHeating: @@ -244,17 +245,18 @@ LookupVariablesHeating: gross_frost_free_capacity: Description: "Total heat added by the indoor coil when there is no frost forming on the coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True Notes: - "Sometimes also referred to as \"instantaneous\" capacity" - "Does not account for heat added by the fan" + gross_frost_free_power: - Description: "Gross power draw of the outdoor unit when there is no frost forming on the coil" + Description: "Gross power draw of the outdoor unit when there is no frost forming on the coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "W" Required: True Scalable: True @@ -267,16 +269,16 @@ LookupVariablesHeating: Data Type: "[]" Units: "-" Required: True - + PerformanceMapDefrostDegradation: Object Type: "Performance Map" Data Elements: grid_variables: - Description: "Data group defining the grid variables for heating performance degradation due to defrost operation" + Description: "Data group defining the grid variables for heating performance degradation due to the effects of frost formation and associated defrost operation" Data Type: "{GridVariablesDefrostDegradation}" Required: True lookup_variables: - Description: "Data group defining the lookup variables for heating performance degradation due to defrost operation" + Description: "Data group defining the lookup variables for heating performance degradation due to the effects of frost formation and associated defrost operation" Data Type: "{LookupVariablesDefrostDegradation}" Required: True @@ -292,37 +294,39 @@ GridVariablesDefrostDegradation: outdoor_coil_entering_relative_humidity: Description: "Relative humidity of the air entering the outdoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0, <=1.0" + Constraints: ">=0.0, <=1.0" Units: "-" Required: True compressor_sequence_number: - Description: "Index indicating the relative order of the compressor speed/stage" - Data Type: "[Numeric][1..]" - Constraints: ">=0" + Description: "Index indicating the relative capacity order of the compressor speed/stage expressed in order from lowest capacity (starting at 1) to highest capacity" + Data Type: "[Integer][1..]" + Constraints: ">=1" Units: "-" - Notes: "Expressed in order from initial stage/speed to final stage/speed" + Notes: ["If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", + "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] Required: True LookupVariablesDefrostDegradation: Object Type: "Lookup Variables" Data Elements: capacity_correction_factor: - Description: "Correction factor to the frost-free heat added by the indoor coil over the time between defrost terminations" + Description: "Factor representing the average adjustment to the frost-free heat added by the indoor coil over the time between defrost terminations" Data Type: "[Numeric][1..]" - Constraints: ">=0, <=1" + Constraints: ">=0.0, <=1.0" Units: "-" + Notes: "A value of 1.0 indicates no frost formation or defrost related degradation" Required: True power_correction_factor: - Description: "Correction factor to the frost-free power draw due to the defrost time fraction" + Description: "Factor representing the average adjustment to the frost-free power over the time between defrost terminations" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "-" Required: True - Notes: "A factor greater than 1.0 implies electric strip heat is used to defrost the outdoor coil rather than using a reverse cycle" + Notes: "A factor greater than 1.0 indicates electric resistance strip heat might be applied to defrost the outdoor coil" defrost_time_fraction: Description: "Fraction of time between defrost terminations that the defrost process is engaged" Data Type: "[Numeric][1..]" - Constraints: ">=0, <=1" + Constraints: ">=0.0, <=1.0" Units: "-" Required: True Note: "This value is used by the application software to determine when to apply supplemental heating during defrost" From 65e7af8a12e34a2d1fcddaa61ac3c49843b67d80 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Wed, 1 Oct 2025 10:33:51 -0500 Subject: [PATCH 18/20] Added informative notes and use "correction" instead of "degradation" --- schema-source/RS0004.schema.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 2a3ef07..7ddf225 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -95,9 +95,9 @@ Performance: Description: "Data group describing heating performance over a range of conditions" Data Type: "{PerformanceMapHeating}" Required: "if performance_capabilities contains(HEATING)" - performance_map_defrost_degradation: - Description: "Data group describing heating performance degradation due to defrost operation over a range of conditions" - Data Type: "{PerformanceMapDefrostDegradation}" + performance_map_defrost_correction: + Description: "Data group describing the impact on heating performance due to frost formation and defrost operation" + Data Type: "{PerformanceMapDefrostCorrection}" Required: "if performance_capabilities contains(HEATING)" performance_map_standby: Description: "Data group describing standby performance" @@ -243,25 +243,25 @@ LookupVariablesHeating: Object Type: "Lookup Variables" Data Elements: gross_frost_free_capacity: - Description: "Total heat added by the indoor coil when there is no frost forming on the coil" + Description: "Total heat added by the indoor coil when there is no frost present on the coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" Required: True Scalable: True Notes: - - "Sometimes also referred to as \"instantaneous\" capacity" + - "***Informative note:*** Sometimes also referred to as \"instantaneous\" or \"steady-state\" capacity" - "Does not account for heat added by the fan" gross_frost_free_power: - Description: "Gross power draw of the outdoor unit when there is no frost forming on the coil" + Description: "Gross power draw of the outdoor unit when there is no frost present on the coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" Required: True Scalable: True Notes: - - "Sometimes also referred to as \"instantaneous\" power" + - "***Informative note:*** Sometimes also referred to as \"instantaneous\" or \"steady-state\" power" - "Does not include power drawn by the indoor fan" - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater" operation_state: @@ -270,19 +270,19 @@ LookupVariablesHeating: Units: "-" Required: True -PerformanceMapDefrostDegradation: +PerformanceMapDefrostCorrection: Object Type: "Performance Map" Data Elements: grid_variables: - Description: "Data group defining the grid variables for heating performance degradation due to the effects of frost formation and associated defrost operation" - Data Type: "{GridVariablesDefrostDegradation}" + Description: "Data group defining the grid variables for the impact on heating performance due to the effects of frost formation and defrost operation" + Data Type: "{GridVariablesDefrostCorrection}" Required: True lookup_variables: - Description: "Data group defining the lookup variables for heating performance degradation due to the effects of frost formation and associated defrost operation" - Data Type: "{LookupVariablesDefrostDegradation}" + Description: "Data group defining the lookup variables for the impact on heating performance due to the effects of frost formation and defrost operation" + Data Type: "{LookupVariablesDefrostCorrection}" Required: True -GridVariablesDefrostDegradation: +GridVariablesDefrostCorrection: Object Type: "Grid Variables" Data Elements: outdoor_coil_entering_dry_bulb_temperature: @@ -306,7 +306,7 @@ GridVariablesDefrostDegradation: "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] Required: True -LookupVariablesDefrostDegradation: +LookupVariablesDefrostCorrection: Object Type: "Lookup Variables" Data Elements: capacity_correction_factor: @@ -314,7 +314,7 @@ LookupVariablesDefrostDegradation: Data Type: "[Numeric][1..]" Constraints: ">=0.0, <=1.0" Units: "-" - Notes: "A value of 1.0 indicates no frost formation or defrost related degradation" + Notes: "A value of 1.0 indicates no frost formation or defrost operation" Required: True power_correction_factor: Description: "Factor representing the average adjustment to the frost-free power over the time between defrost terminations" @@ -329,7 +329,7 @@ LookupVariablesDefrostDegradation: Constraints: ">=0.0, <=1.0" Units: "-" Required: True - Note: "This value is used by the application software to determine when to apply supplemental heating during defrost" + Note: "***Informative note:*** This value is used to inform application software when it may need to control supplemental heating during defrost" PerformanceMapStandby: Object Type: "Performance Map" From fc5a78d656d7566b6d124c4b27d54a5623030a12 Mon Sep 17 00:00:00 2001 From: "elyse.malherek" Date: Wed, 1 Oct 2025 19:02:35 -0500 Subject: [PATCH 19/20] Updated minor wording and decimal precision on numeric contstraints --- schema-source/RS0004.schema.yaml | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 7ddf225..1b6810c 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -96,7 +96,7 @@ Performance: Data Type: "{PerformanceMapHeating}" Required: "if performance_capabilities contains(HEATING)" performance_map_defrost_correction: - Description: "Data group describing the impact on heating performance due to frost formation and defrost operation" + Description: "Data group describing the impact on heating performance due to frost formation, defrost operation, or both" Data Type: "{PerformanceMapDefrostCorrection}" Required: "if performance_capabilities contains(HEATING)" performance_map_standby: @@ -213,20 +213,20 @@ GridVariablesHeating: outdoor_coil_entering_dry_bulb_temperature: Description: "Dry bulb temperature of the air entering the outdoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "K" Required: True indoor_coil_entering_dry_bulb_temperature: Description: "Dry bulb temperature of the air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "K" Required: True Notes: "As measured immediately before entering the coil (i.e., after the fan in a blow-through configuration)" indoor_coil_air_mass_flow_rate: Description: "Mass flow rate of air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "kg/s" Required: True Scalable: True @@ -243,7 +243,7 @@ LookupVariablesHeating: Object Type: "Lookup Variables" Data Elements: gross_frost_free_capacity: - Description: "Total heat added by the indoor coil when there is no frost present on the coil" + Description: "Rate of total heat added by the indoor coil when there is no frost present on the outdoor coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" @@ -254,7 +254,7 @@ LookupVariablesHeating: - "Does not account for heat added by the fan" gross_frost_free_power: - Description: "Gross power draw of the outdoor unit when there is no frost present on the coil" + Description: "Gross power draw of the outdoor unit when there is no frost present on the outdoor coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" @@ -274,11 +274,11 @@ PerformanceMapDefrostCorrection: Object Type: "Performance Map" Data Elements: grid_variables: - Description: "Data group defining the grid variables for the impact on heating performance due to the effects of frost formation and defrost operation" + Description: "Data group defining the grid variables for the impact on heating performance due to the effects of frost formation, defrost operation, or both" Data Type: "{GridVariablesDefrostCorrection}" Required: True lookup_variables: - Description: "Data group defining the lookup variables for the impact on heating performance due to the effects of frost formation and defrost operation" + Description: "Data group defining the lookup variables for the impact on heating performance due to the effects of frost formation, defrost operation, or both" Data Type: "{LookupVariablesDefrostCorrection}" Required: True @@ -288,7 +288,7 @@ GridVariablesDefrostCorrection: outdoor_coil_entering_dry_bulb_temperature: Description: "Dry bulb temperature of the air entering the outdoor coil" Data Type: "[Numeric][1..]" - Constraints: ">=0" + Constraints: ">=0.0" Units: "K" Required: True outdoor_coil_entering_relative_humidity: @@ -302,34 +302,33 @@ GridVariablesDefrostCorrection: Data Type: "[Integer][1..]" Constraints: ">=1" Units: "-" - Notes: ["If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", - "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] + Notes: "Shall be consistent with the values of `compressor_sequence_number` in `GridVariablesHeating`" Required: True LookupVariablesDefrostCorrection: Object Type: "Lookup Variables" Data Elements: capacity_correction_factor: - Description: "Factor representing the average adjustment to the frost-free heat added by the indoor coil over the time between defrost terminations" + Description: "Factor representing the correction to the gross frost-free heating capacity to account for impacts of frost formation, defrost operation, or both over the integrated time period" Data Type: "[Numeric][1..]" Constraints: ">=0.0, <=1.0" Units: "-" Notes: "A value of 1.0 indicates no frost formation or defrost operation" Required: True power_correction_factor: - Description: "Factor representing the average adjustment to the frost-free power over the time between defrost terminations" + Description: "Factor representing the correction to the gross frost-free power to account for impacts of frost formation, defrost operation, or both over the integrated time period" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "-" Required: True Notes: "A factor greater than 1.0 indicates electric resistance strip heat might be applied to defrost the outdoor coil" defrost_time_fraction: - Description: "Fraction of time between defrost terminations that the defrost process is engaged" + Description: "Fraction of integrated time period when defrost operation is active" Data Type: "[Numeric][1..]" Constraints: ">=0.0, <=1.0" Units: "-" Required: True - Note: "***Informative note:*** This value is used to inform application software when it may need to control supplemental heating during defrost" + Notes: "***Informative note:*** This value is used to inform application software when it may need to control supplemental heating during defrost" PerformanceMapStandby: Object Type: "Performance Map" From 8180c770d1241a66722743bca418f11591fbca66 Mon Sep 17 00:00:00 2001 From: Neal Kruis Date: Mon, 3 Nov 2025 09:37:48 -0700 Subject: [PATCH 20/20] Clarify frost free data element descriptions. --- schema-source/RS0004.schema.yaml | 37 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/schema-source/RS0004.schema.yaml b/schema-source/RS0004.schema.yaml index 1b6810c..af493d1 100644 --- a/schema-source/RS0004.schema.yaml +++ b/schema-source/RS0004.schema.yaml @@ -73,14 +73,14 @@ Performance: Description: "Cooling cycling degradation coefficient (C~D~^c^)" Data Type: "Numeric" Units: "-" - Constraints: [">=0.0","<1.0"] + Constraints: [">=0.0", "<1.0"] Required: "if performance_capabilities contains(COOLING)" Notes: ["Used for the lowest stage when the unit cycles to meet load"] heating_cycling_degradation_coefficient: Description: "Heating cycling degradation coefficient (C~D~^h^)" Data Type: "Numeric" Units: "-" - Constraints: [">=0.0","<1.0"] + Constraints: [">=0.0", "<1.0"] Required: "if performance_capabilities contains(HEATING)" Notes: ["Used for the lowest stage when the unit cycles to meet load"] scaling: @@ -128,7 +128,7 @@ GridVariablesCooling: indoor_coil_entering_relative_humidity: Description: "Relative humidity of the air entering the indoor coil" Data Type: "[Numeric][1..]" - Constraints: [">=0.0","<=1.0"] + Constraints: [">=0.0", "<=1.0"] Units: "-" Notes: "As measured immediately before entering the coil (i.e., after the fan in a blow-through configuration)" Required: True @@ -151,8 +151,11 @@ GridVariablesCooling: Data Type: "[Integer][1..]" Constraints: ">=1" Units: "-" - Notes: ["If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", - "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] + Notes: + [ + "If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", + "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)", + ] Required: True ambient_absolute_air_pressure: Description: "Ambient absolute air pressure" @@ -187,8 +190,11 @@ LookupVariablesCooling: Units: "W" Required: True Scalable: True - Notes: ["Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater", - "Shall not include power drawn by the indoor fan"] + Notes: + [ + "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater", + "Shall not include power drawn by the indoor fan", + ] operation_state: Description: "The operation state at the operating conditions" Data Type: "[]" @@ -235,33 +241,36 @@ GridVariablesHeating: Data Type: "[Integer][1..]" Constraints: ">=1" Units: "-" - Notes: ["If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", - "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)"] + Notes: + [ + "If `compressor_speed_control_type` is `DISCRETE`, sequence numbers shall be provided for each discrete stage of the compressor(s)", + "If `compressor_speed_control_type` is `CONTINUOUS`, sufficient sequence numbers shall be provided to capture the continuous operation of the compressor(s)", + ] Required: True LookupVariablesHeating: Object Type: "Lookup Variables" Data Elements: gross_frost_free_capacity: - Description: "Rate of total heat added by the indoor coil when there is no frost present on the outdoor coil" + Description: "Rate of heat added by the indoor coil under steady state conditions with no frost present on the outdoor coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" Required: True Scalable: True Notes: - - "***Informative note:*** Sometimes also referred to as \"instantaneous\" or \"steady-state\" capacity" + - '***Informative note:*** Sometimes also referred to as "instantaneous" or "steady state" capacity' - "Does not account for heat added by the fan" gross_frost_free_power: - Description: "Gross power draw of the outdoor unit when there is no frost present on the outdoor coil" + Description: "Gross power draw of the outdoor unit under steady state conditions with no frost present on the outdoor coil" Data Type: "[Numeric][1..]" Constraints: ">=0.0" Units: "W" Required: True Scalable: True Notes: - - "***Informative note:*** Sometimes also referred to as \"instantaneous\" or \"steady-state\" power" + - '***Informative note:*** Sometimes also referred to as "instantaneous" or "steady state" power' - "Does not include power drawn by the indoor fan" - "Includes compressor, outdoor fan, and any auxiliary power used by the unit's controls and any crankcase heater" operation_state: @@ -269,7 +278,7 @@ LookupVariablesHeating: Data Type: "[]" Units: "-" Required: True - + PerformanceMapDefrostCorrection: Object Type: "Performance Map" Data Elements: