Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
a90f9e1
Initial changes for heat pump characterization.
nealkruis Aug 20, 2020
79f934f
Merge master.
nealkruis May 26, 2021
58ea23d
Merge main.
nealkruis Jan 19, 2023
6e3d45e
Update ASHP schema.
nealkruis Feb 3, 2023
c8c847e
Merge main.
nealkruis Jun 14, 2024
c54e1e1
Clean up teminology for heating operation.
nealkruis Sep 30, 2024
7d34177
Remove out-of-scope changes.
nealkruis Sep 30, 2024
6983be8
Add operating modes.
nealkruis Oct 9, 2024
4a90880
Merge remote-tracking branch 'origin/main' into draft-rs-ashp
nealkruis Oct 9, 2024
bed8943
Modify performance capabilities enumeration.
nealkruis Oct 15, 2024
cd60c2d
Update example files.
nealkruis Oct 15, 2024
8b6c169
Make performance capabilities explicitly controlled.
nealkruis Nov 6, 2024
d6f8df6
Merge remote-tracking branch 'origin/main' into draft-rs-ashp
nealkruis Nov 6, 2024
d62231f
Remove AHRI references.
elyse-malherek Jul 21, 2025
7afeac7
Update constraints to include zero.
elyse-malherek Jul 21, 2025
aa480d1
Revert "Update constraints to include zero."
elyse-malherek Jul 21, 2025
a4b7f46
Update constraints to include 0
elyse-malherek Jul 21, 2025
bf2585c
Update "sump" to "crankcase"
elyse-malherek Jul 21, 2025
dade30f
Remove dehumidification and humidification from performance capabilities
elyse-malherek Jul 22, 2025
8401ec7
add defrost tables
TimMcDowell Aug 25, 2025
244e6e2
Changes discussed on 9/9/25 SSPC 205 WG call.
nealkruis Sep 9, 2025
5f75e6b
ISC edits
TimMcDowell Sep 29, 2025
65e7af8
Added informative notes and use "correction" instead of "degradation"
elyse-malherek Oct 1, 2025
fc5a78d
Updated minor wording and decimal precision on numeric contstraints
elyse-malherek Oct 2, 2025
8180c77
Clarify frost free data element descriptions.
nealkruis Nov 3, 2025
7b8e716
Merge main.
nealkruis Mar 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@
}
},
"performance": {
"performance_capabilities": ["COOLING"],
"compressor_speed_control_type": "DISCRETE",
"cycling_degradation_coefficient": 0.25,
"cooling_cycling_degradation_coefficient": 0.25,
"performance_map_cooling": {
"grid_variables": {
"outdoor_coil_entering_dry_bulb_temperature": [
Expand Down
3 changes: 2 additions & 1 deletion examples/RS0002/residential-unitary.RS0002.json
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@
"disclaimer": "This data is synthetic and does not represent any physical products."
},
"performance": {
"performance_capabilities": ["COOLING"],
"compressor_speed_control_type": "DISCRETE",
"cycling_degradation_coefficient": 0.1,
"performance_map_cooling": {
Expand Down Expand Up @@ -8555,4 +8556,4 @@
}
}
}
}
}
3 changes: 2 additions & 1 deletion examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
}
},
"performance": {
"performance_capabilities": ["COOLING"],
"compressor_speed_control_type": "DISCRETE",
"cycling_degradation_coefficient": 0.25,
"cooling_cycling_degradation_coefficient": 0.25,
"performance_map_cooling": {
"grid_variables": {
"outdoor_coil_entering_dry_bulb_temperature": [
Expand Down
3 changes: 2 additions & 1 deletion examples/RS0004/HPDM.RS0004.a205.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
}
},
"performance": {
"performance_capabilities": ["COOLING"],
"compressor_speed_control_type": "DISCRETE",
"cycling_degradation_coefficient": 0.1,
"cooling_cycling_degradation_coefficient": 0.1,
"performance_map_cooling": {
"grid_variables": {
"outdoor_coil_entering_dry_bulb_temperature": [
Expand Down
1 change: 1 addition & 0 deletions examples/RS0004/residential-dx.RS0004.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"disclaimer": "This data is synthetic and does not represent any physical products."
},
"performance": {
"performance_capabilities": ["COOLING"],
"compressor_speed_control_type": "DISCRETE",
"cycling_degradation_coefficient": 0.1,
"performance_map_cooling": {
Expand Down
10 changes: 5 additions & 5 deletions meta-schema/meta.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
},
"ConditionallyRequiredPattern": {
"type": "string",
"pattern": "if (([a-z]+)(_([a-z]|[0-9])+)*)(!?=((([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?))|(\".*\")|(([A-Z]([A-Z]|[0-9])*)(_([A-Z]|[0-9])+)*)|(True|False)))?"
"pattern": "if (\\.\\.)?(([a-z]+)(_([a-z]|[0-9])+)*)(!?=((([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?))|(\".*\")|(([A-Z]([A-Z]|[0-9])*)(_([A-Z]|[0-9])+)*)|(True|False)))?"
},
"Required": {
"oneOf": [
Expand Down Expand Up @@ -273,7 +273,7 @@
},
"Scalable": {
"$ref": "meta.schema.json#/definitions/Scalable"
},
},
"Notes": {
"$ref": "meta.schema.json#/definitions/Notes"
},
Expand Down Expand Up @@ -340,7 +340,7 @@
},
"Scalable": {
"$ref": "meta.schema.json#/definitions/Scalable"
},
},
"Notes": {
"$ref": "meta.schema.json#/definitions/Notes"
}
Expand Down Expand Up @@ -379,7 +379,7 @@
},
"Scalable": {
"$ref": "meta.schema.json#/definitions/Scalable"
},
},
"Notes": {
"$ref": "meta.schema.json#/definitions/Notes"
}
Expand Down Expand Up @@ -618,4 +618,4 @@
}
},
"additionalProperties": false
}
}
18 changes: 18 additions & 0 deletions schema-source/ASHRAE205.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,24 @@ OperationState:
Description: "Indicates that the equipment is in standby operating state"
Display Text: "Standby"

PerformanceCapabilities:
Object Type: "Enumeration"
Enumerators:
COOLING:
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 explicitly controlled heating and the representation contains heating-related performance data"
Display Text: "Heating"
# 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
Metadata:
Object Type: "Data Group"
Expand Down
195 changes: 179 additions & 16 deletions schema-source/RS0004.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,26 +60,45 @@ ProductInformation:
Performance:
Object Type: "Data Group"
Data Elements:
performance_capabilities:
Description: "An array of unique operating modes that indicate the capabilities of the equipment"
Data Type: "[<PerformanceCapabilities>]"
# 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: "<SpeedControlType>"
Required: True
cycling_degradation_coefficient:
Description: "Cycling degradation coefficient (C~D~) as described in AHRI 210/240"
cooling_cycling_degradation_coefficient:
Description: "Cooling cycling degradation coefficient (C~D~^c^)"
Data Type: "Numeric"
Units: "-"
Constraints: [">=0.0","<1.0"]
Required: True
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"]
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"]
Required: "if performance_capabilities contains(HEATING)"
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}"
Notes: "If not present, scaling of the performance data is not allowed"
performance_map_cooling:
Description: "Data group describing cooling performance over a range of conditions"
Data Type: "{PerformanceMapCooling}"
Required: True
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 performance_capabilities contains(HEATING)"
performance_map_defrost_correction:
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:
Description: "Data group describing standby performance"
Data Type: "{PerformanceMapStandby}"
Expand Down Expand Up @@ -109,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
Expand All @@ -123,7 +142,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
Expand All @@ -132,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"
Expand Down Expand Up @@ -164,18 +186,159 @@ 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",
"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: "[<OperationState>]"
Units: "-"
Required: True

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..]"
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.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.0"
Units: "kg/s"
Required: True
Scalable: True
compressor_sequence_number:
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:
[
"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 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'
- "Does not account for heat added by the fan"

gross_frost_free_power:
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'
- "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:
Description: "The operation state at the operating conditions"
Data Type: "[<OperationState>]"
Units: "-"
Required: True

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, 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, defrost operation, or both"
Data Type: "{LookupVariablesDefrostCorrection}"
Required: True

GridVariablesDefrostCorrection:
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.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.0, <=1.0"
Units: "-"
Required: True
compressor_sequence_number:
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: "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 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 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 integrated time period when defrost operation is active"
Data Type: "[Numeric][1..]"
Constraints: ">=0.0, <=1.0"
Units: "-"
Required: True
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"
Data Elements:
Expand Down Expand Up @@ -204,8 +367,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"
Loading