-
-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Background
The Design Temperature depends on the home's address. Somewhere in our code, we do an external query to find the U.S. county in which a home is located based on its address. Then we look up the heating design temperature in a table derived from an EnergyStar document that specifies the heating design temperature for each county in the U.S. We'll call that value the County-Level Design Temperature. The EnergyStar source explains that they used the lowest heating design temperature among all weather stations within the county which turns out to be very conservative, i.e. colder than necessary in many cases. To work around this, we need to provide a field for users to override the County-Level Design Temperature. We'll call this value the Design Temperature Override.
UI specification
- There should be a new heading Heating Design Temperature below the Calculate button and above the heading Heat Load Analysis. There should be a help question-mark icon at the end of this heading, help text specified at the end of this write-up. This heading will appear after the user clicks Calculate, or whenever analysis results are displayed. The reason for displaying it in this location is that this value depends on the user having already entered the home's address. There should
- Underneath the above-specified heading, display:
County-Level Design Temperature<value in degF>°F<horizontal space>Design Temperature Override entry-field - The font size and weight for the above-specified row should be the same as the fields displayed under the Heat Load Analysis heading.
- The "entry-field" should be an editable field that allows a number in the range -10 to 32, with the tip inside the field "Enter a value in the range -10 to 32". Underneath the field, display the tip "If a value is entered, it will be used in place of the County-Level Design Temperature"
- The
And here's how this should work from a calculation perspective:
- If the Design Temperature Override field is empty, the Rules Engine should use the County-Level Design Temperature.
- If the Design Temperature Override field has a valid value, the Rules Engine should use that value in place of the County-Level Design Temperature
- If the Design Temperature Override contains an invalid value, display an error message "The entered value is not valid" in the same way as other error messages on this form.
- Both the County-Level Design Temperature and a Design Temperature Override value (either valid or null) should be saved with other analysis results that are saved with the case.
Help Text
The heating design temperature is the coldest outdoor temperature for which the heating system should be capable of supplying sufficient heat to maintain an indoor temperature of 70°F. The default is to use a County-Level Design Temperature obtained from an ENERGY STAR guide. However, there are sometimes reasons to override the default value by entering a different value in the Design Temperature Override field, including:
- The user wants to compare the output from this tool with a Manual J analysis. In this case, enter an override value that matches the heating design temperature used in the Manual J analysis
- The user judges that the default value is too low or too high. In general, values obtained from the ENERGY STAR guide appear to be very conservative (lower than necessary) because the guide is based on the lowest ASHRAE 99% heating design temperature among all weather stations within a county. The guide cites an EPA recommendation to use the ASHRAE 99% heating design temperature for the weather station that is geographically closest to a home, which will often give a higher value when there are multiple weather stations within a county.
- A different value specified by the local jurisdiction (uncommon)
Implementation
I have the impression that the rules engine already supports a design temperature override. If so, the main work here is to implement the UI, make sure the override value gets passed through to the rules engine, and save the value in the database.