feat: Test copying entire project directory.

This commit is contained in:
2024-11-27 13:39:13 -05:00
parent 93f4a760bd
commit 7d51408a04
12 changed files with 461 additions and 24 deletions

0
project/Airflow/.gitkeep Normal file
View File

0
project/ManJ/.gitkeep Normal file
View File

307
project/Report.md Normal file
View File

@@ -0,0 +1,307 @@
---
title: "{{ document_title }}"
author: "{{ author_name }}"
date: \today{}
mainfont: Avenir Next
documentclass: article
fontsize: 12pt
# NOTE: The applegreen is a custom color defined in resources/head.tex
linkcolor: applegreen
urlcolor: applegreen
abstract: |
**Prepared For:**
{{ customer.name }}
{{ customer.address.street }}
{{ customer.address.city }}, {{ customer.address.state }} {{ customer.address.zip }}
```{=latex}
\begin{center}
```
<!-- below are just forced line breaks -->
\
\
\
[![logo]({{ links.images.logo }}){ width=30% }]({{ company.website }})
```{=latex}
\end{center}
```
---
<!-- NOTE: Table of contents section only needs changed if new sections are
added.
-->
# Contents
1. [Introduction](#home-performance-report)
1. [Your Goals](#your-goals)
1. [Leakage](#how-leaky-is-your-house)
1. [Observations](#observations)
1. [HVAC](#hvac-observations)
1. [Home](#home-observations)
1. [Load Calculations](#load-calculations)
1. [Your Loads](#your-loads)
1. [Airflow Assessment](#airflow-assessment)
1. [Your Static Measurements](#your-static-measurements)
1. [Static Pressure Forecast](#static-measurements-forecast)
1. [Summary](#summary)
1. [Definitions](#definitions)
1. [CFM50]
1. [IAQ]
1. [LAIR]
1. [Load Calculation][load-calculation]
1. [Shell][shell]
1. [SHR]
1. [TESP]
1. [WC][wc]
# Home Performance Report
Thank you for having us to your home for a home performance assessment. I hope that it was
beneficial. We learned a lot about your home and your goals during the brief visit. So, lets jump
in to some of the things discovered.
Below is a summary of your goals, house measurements, and our budget discussion as well as my
observations and some recommendations. As part of the service we ran load calculations that help
determine the right sized HVAC for your home as it stand and with some upgrades. Those are attached
as are bids for replacements.
Once you read the report youll have 3 options: do nothing, pick and choose upgrades, or do more
planning for more difficult goals or complex projects. These options are discussed at the end of the
report as well as our leanings for your home.
\goalsimage
## Your goals:
<!-- NOTE: This should probably be a table in most cases, with a rank.-->
<!--
| Goal | Rank |
| ------ | ---- |
| A goal | 8 |
| B goal | 5 |
-->
<!-- WARNING: Add goals here -->
1. Add air conditioning.
# How Leaky Is Your House
<!-- NOTE: Several of the variables used in this section are defined in vars.sh
Do not change them here, instead update them in the vars.sh file.
-->
One of the main objectives was to perform a blower door test and load calculations for the home. We
discovered that the blower door number was {{ home.cfm50 }} [CFM50] for the approximately
{{ home.square_feet }} \squarefoot ({{ home.lair }} [LAIR]). A leaky home, most often, is an
uncomfortable and uncontrollable home.
> _Air leakage tends to have one of the largest impacts on the load of a home._
>
> - _Around 1:1 homes begin to be more controllable / comfortable_
> - _your home is {{ home.cfm50 }}:{{ home.square_feet }} \squarefoot for a ratio of
> {{ home.lair }}_
> - _Leaky homes are very difficult to maintain comfort with HVAC alone._
# Observations
The below sections are observations about the current HVAC system and the home.
## HVAC Observations
<!-- WARNING: Add HVAC observations here. -->
1. Current furnace is sized appropriately based on the load of the home.
1. Current duct system is not sized adequately for the system.
1. Filter is too small for the system.
1. Return sizing is not adequate.
1. Supply sizing is marginal.
1. Current static pressure is already high.
1. These problems may become worse when AC is installed.
## Home Observations
<!-- WARNING: Add house observations here. -->
1. The house leakage is high for the size of the home.
1. May be hard to control comfort without [shell] improvements.
# Load Calculations
Several [load-calculations][load-calculation] were performed on your home to determine the proper
equipment sizing for this application. Below is a comparison of the
[load-calculations][load-calculation] with the current air leakage and several improved air leakage
targets.
## Your Loads
<!-- WARNING: Add the project loads here. -->
| [CFM50] | | Heating Total | Cooling Total | [SHR] | [LAIR] |
| -------------------- | ----------- | ------------- | ------------- | -------- | ------------------- |
| **{{ home.cfm50 }}** | **Current** | **55,102** | **20,726** | **0.79** | **{{ home.lair }}** |
| 2,000 | | 40,320 | 17,279 | 0.85 | 1.5:1 |
| 1,350 | | 35,885 | 16,245 | 0.88 | 1:1 |
> **Note:**
>
> 1. _The lower the heating and cooling total's the better._
> 1. _An undersized air conditioner is better than an oversized one._
> 1. _Supplemental dehumidification may be required for [SHR]'s below 0.83._
The above table shows the relationship between air leakage and the amount of heating and cooling
that is required for the home. A tight home is easier to control the comfort levels, offers superior
IAQ levels, and lower utility costs.
<!-- WARNING: Update this summary for the given project -->
The projected cooling size required for your home is around 2-Tons for the current leakage rate, or
1.5-Tons if [shell] improvements were made.
[Here is a link to your load calculation reports][loads-folder]
# Airflow Assessment
While on site, we also measured the total system airflow and static pressure of the system. Static
pressure is equivalent to the blood pressure of your system and gives us a better understanding of
the overall ability for the system to provide the proper amount of airflow, as well as how much it
may struggle to do so.
Static pressure is the amount of resistance that the blower has to work against in order to move air
through the system. Things that have an effect on the static pressure of the system include, air
filters (size and type), duct sizes, amount of ducts, length of ducts, duct fittings and
transitions, as well as internal system components. Each component of the system has a resistance
associated with it that the blower has to overcome, by taking some key measurements we are able to
determine the [TESP] of the system. While there are several static pressures in the system, when we
talk about static pressure we are generally referring to [TESP].
Static pressure ([TESP]) has a range of _low_, _acceptable_, or _high_. While these numbers are
specific to the actual equipment, most manufacturers follow similar standards. For the sake of
simplicity, 0.5" [wc] or under is an _acceptable_ target, 0.8" [wc] is generally the max acceptable
static pressure (although we like to stay well below this if possible), and above 0.8" [wc] is
considered _high_ and should be addressed. _Low_ is generally not common and is rarely problematic,
so it is not focused on much.
<!-- NOTE: Force a new page here, for images and sub-section heading to be on same page -->
\newpage
## Your Static Measurements
![True Flow Report][trueflow-image]{ height=50% }
<!-- WARNING: Summarize the static measurements here -->
The above image is a snapshot of the static pressures recorded for your system. This shows that the
static pressure of your system is very high (1.114" [wc]). The primary culprits for the high static
pressure are that the filter is undersized for the airflow required and the return duct sizing is
small.
These measurements were taken in the heating mode because your system does not currently have air
conditioning. Currently the heating airflow is on the low side for what is required for your system
(1200 CFM would be ideal). This should be adjusted if possible during the install to get better
performance and efficiency out of the system, given that some static pressures can be improved
during the project.
\
\
[Here is a link to the full airflow report.][trueflow-file]
<!-- NOTE: Force a new page here, for images and sub-section heading to be on same page -->
\newpage
## Static Measurements Forecast
![True Flow Forecast][trueflow-forecast-image]{ height=50% }
<!-- WARNING: Summarize the forecast results below. -->
The above image is a snapshot is of a forecast of the static pressures after adding air
conditioning. It should be noted that these measurements are based solely on the airflow required
for cooling mode, not for heating mode (in other words, heating mode is going to be higher because
the airflow requirement is higher).
This shows that with an upgraded filter we can get the static pressure below the 0.8" [wc] max
target while in cooling mode.
\
\
[Here is a link to the full forecast report.][trueflow-forecast-file]
# Summary
The purpose of the home performance assessment is to help find the overlap between the house needs,
the goals, and the budget to see if there's a viable project.
<!-- WARNING: Add summary here -->
The house is pretty leaky overall. This is due to the age and construction style of the house. This
may lead to comfort problems or trouble maintaining comfort in all areas of the house.
Based on the [load calculations][load-calculation], the previously quoted systems are too large for
the current load, so we need to update the proposals to be for 2-Ton systems. This will help with
the fact that the static pressure of the system is already really high. The static pressure for
heating will likely still be above the 0.8" [wc] max threshold.
An upgraded air filter is going to be required to help alleviate the blower motor. Another return
may be required in the living space to further drop the static pressure, however this could likely
be done in the future if desired. I would estimate that adding another return would be in the
**$800-1,200** range.
While on site it was mentioned that you would like some of the ducts to be sealed that go to the
second floor. This is something that is not included in our general proposals. I would estimate this
to be an additional **$150-300** and will add options in the updated proposals.
Since the goal is to add air conditioning, then I would recommend going with a 2-Ton system. If the
system does not maintain then you could look into [shell] improvements and air sealing the home.
Regards,
\
\
\
[Here is a link to all the documents][document-folder]
<!-- prettier-ignore-start -->
<!-- NOTE: These are reference links for short form linking in the document.
This allows all the links to be changed / updated in one place.
However most do not need updated unless sections are added, besides the
document links, which are defined / setup in vars.sh.
-->
[CFM50]: #cfm50-definition "CFM50"
[IAQ]: #iaq-definition "IAQ"
[LAIR]: #lair-definition "LAIR"
[load-calculation]: #load-calculation-definition "load calculation"
[shell]: #shell-definition "shell"
[SHR]: #shr-definition "SHR"
[wc]: #wc-definition "wc"
[TESP]: #tesp-definition "TESP"
<!-- IMPORTANT: Take screen shots of the TrueFlow reports and add to the img
folder with names / path setup in vars.sh -->
<!-- default is img/trueflow.png -->
[trueflow-image]: "{{ links.images.trueflow }}"
<!-- default is img/forecast.png -->
[trueflow-forecast-image]: "{{ links.images.trueflow_forecast }}"
<!-- NOTE: These links are defined in vars.sh -->
[loads-folder]: "{{ links.documents.loads_folder }}"
[trueflow-file]: "{{ links.documents.trueflow_file }}"
[trueflow-forecast-file]: "{{ links.documents.trueflow_forecast_file }}"
[document-folder]: "{{ links.documents.document_folder }}"
<!-- prettier-ignore-end -->

0
project/img/.gitkeep Normal file
View File

55
project/justfile Normal file
View File

@@ -0,0 +1,55 @@
playbook_dir := "${ANSIBLE_LOCAL}/ansible-hpa-playbook"
build_dir_name := ".build"
[private]
default:
just --list
[private]
run_pandoc dir output_file: build
@pandoc --pdf-engine=xelatex \
-H {{build_dir_name}}/"head.tex" \
-H {{build_dir_name}}/"footer.tex" \
-o {{dir}}/{{output_file}} \
{{build_dir_name}}/"Report.md" \
{{build_dir_name}}/"Definitions.md"
[private]
run-playbook *ARGS:
@ansible-playbook {{playbook_dir}}/main.yml \
--inventory {{playbook_dir}}/inventory.ini \
--extra-vars "output_dir={{justfile_directory()}}" \
--extra-vars "project_dir={{justfile_directory()}}" \
{{ARGS}}
# Builds and fills the templates into the .build directory.
[group('build')]
build: (run-playbook "--tags build-project")
# Build & generate an HTML report.
[group("generate")]
html title="Report.html" output_dir=".build": (
run_pandoc output_dir file_stem(title) + ".html"
)
open {{output_dir}}/{{ prepend(file_stem(title), ".html") }}
# Build & generate a PDF report.
[group("generate")]
pdf title="Report.pdf" output_dir="${PWD}": (run_pandoc output_dir file_stem(title) + ".pdf")
open {{output_dir}}/{{ prepend(file_stem(title), ".pdf") }} && \
@osascript ./scripts/notify.scpt
# Build & generate a Latex file.
[group("generate")]
[group("debug")]
tex title="Report.tex" output_dir=".build": (run_pandoc output_dir file_stem(title) + ".tex")
@echo "Wrote to: " + {{output_dir}}/{{file_stem(title)}} + ".tex"
[group('utilities')]
edit-vault:
@ansible-vault edit ./vault.yml
[group('utilities')]
clean:
@rm -rf {{build_dir_name}}

View File

@@ -0,0 +1 @@
.build/*

40
project/vars.yml Normal file
View File

@@ -0,0 +1,40 @@
---
# Stores variables related to the template directory, which is used
# to setup projects and store commonly used files.
#
# WARNING: Update the path to where you store your template.
#
# template:
# path: "/path/to/template/dir
# vars: "repo_vars"
# repo: (optional if using a repo as a template)
template:
# When using a git repository as a template dir. In general, it's
# probably best to pin to a particular version of the repo template
# instead of a branch.
#
# repo:
# url: "https://example.com/repo.git"
# version: "main"
repo:
url: "https://git.housh.dev/hhe/consult-template.git"
version: "main"
author_name: "{{ vault_author_name }}"
company: "{{ vault_company }}"
links:
images:
logo: "img/logo.png"
trueflow: "img/trueflow.png"
trueflow_forecast: "img/forecast.png"
documents: "{{ vault_document_links }}"
customer: "{{ vault_customer }}"
home:
square_feet: "3,000"
cfm50: "3,000"
lair: "1:1"

34
project/vault.yml Normal file
View File

@@ -0,0 +1,34 @@
$ANSIBLE_VAULT;1.2;AES256;consults
35313865356261316335353964613035396565343239393165626162353034363363656631393161
3635643130393561633834366632313563333731643337390a313831336631343664623162393137
36666363353937383636613061396365336535353665373163333465333133333262613033323862
3366653636343964300a353431303535653863653939646335393238643330613862383834643931
66663234303762323762316162336337613939376362663362383166316338653435373862663935
32656336666435353565396334353739353836303565643034326634666431313036633865636566
38663038376633616462623533353364373639626533316466353037663462643735326135623161
31646463633633623733356434623665326236306238383232363866356536343734336566373434
65333238373636326363646561346561613032393662613535343739663935626132373636386266
64663636643836343562353363313530613630373463333639626435616437333262346663373133
65306431303539376664333065636232326434326334666433313061383539353137333666333332
32623730383566376131616634373139373639623336316461333931623863386533306564393736
31333537313966613633353062396236303533643133386635666635333964666161346430306365
38663132663262363430343663336562616130306439636432333234366634343432353035623164
32663335313731386539613661656338336339643731393331326163653362366430373061646633
63383532386632336238393461393266353934363235383431666339613938636363393066393966
61633934396530303565616563323365393864356232613034393461656163313462313231616335
32386239643138663339333066336334323738343264623831366433653737616335356261663635
31613063363938633335616261636137373561366165373636316232363032366666316238323338
30313936656635313538663165393063386539633565346431623133613237356535343663663331
30326162633731656238613837393165623337666463613964326165663536323638353036386663
66313763613735313563626161306436383837353039396164653838383161306235396536626434
35653766353932336532643434643034363464363366323762356337366431623262643338363866
64393237346538613130363636636234353535343236373334643662653037636262656663383463
65613039353239366662353130653930383233313666653136363966303138653562343630303464
62366232306234333134666462306439656634363266666263623664343035643562646633666364
31346263376131326463306332376231646264346661346365353665623331636261626664366131
64666133303930613965653533366133633165663166653637663736326265393461393834353433
64656536613430313864366162383064616439633434656362333164373665393664663062386661
34356339613836323135333966646430643534306431633665376237636264616638323065646138
64666464366138373334316434333463386236303963616162623231373962646565393863663334
33363330376633336364303034623765326138306335326136613665313963613361343564383364
39373039636366323962343339303963353636353730333163363365326131666336

View File

@@ -3,8 +3,9 @@
document_title: "Home Performance Report"
template:
path: "{{ lookup('env', 'REPOS') }}/hhe-consult-template/"
vars: repo_vars
repo:
url: "https://git.housh.dev/hhe/consult-template.git"
version: "main"
# Files to copy to the project directory when setting up a new consult project.
#
@@ -15,22 +16,24 @@ template:
# dest: "FileName"
# mode: '0600' # optional mode, defaults to 0600
copy_on_setup:
- src: "project_files/Report.md"
dest: "Report.md"
- src: "project_files/vars.yml"
dest: "vars.yml"
- src: "project_files/vault.yml"
dest: "vault.yml"
- src: "project_directories/img/"
dest: img
- src: "project_directories/Airflow/"
dest: Airflow
- src: "project_directories/ManJ/"
dest: ManJ
- src: project_files/project.gitignore
dest: .gitignore
- src: project_files/project.justfile
dest: justfile
- src: "project/"
dest: "{{ project_dir }}"
# - src: "project_files/Report.md"
# dest: "Report.md"
# - src: "project_files/vars.yml"
# dest: "vars.yml"
# - src: "project_files/vault.yml"
# dest: "vault.yml"
# - src: "project_directories/img/"
# dest: img
# - src: "project_directories/Airflow/"
# dest: Airflow
# - src: "project_directories/ManJ/"
# dest: ManJ
# - src: project_files/project.gitignore
# dest: .gitignore
# - src: project_files/project.justfile
# dest: justfile
# Files to copy to the build directory when building a consult document.
#
@@ -41,11 +44,8 @@ copy_on_setup:
# dest: "Name"
# mode: '0600' # optional mode, defaults to 0600
copy_on_build:
- "{{ template.path }}/Definitions.md"
- "{{ template.path }}/head.tex"
- "{{ template.path }}/img"
- "{{ template.path }}/Airflow"
- "{{ template.path }}/ManJ"
- "{{ template_path }}/Definitions.md"
- "{{ template_path }}/head.tex"
# Files to fill with their template values and copy to the build directory.
#
@@ -56,5 +56,5 @@ copy_on_build:
# dest: "Name"
# mode: '0600' # optional mode, defaults to 0600
template_on_build:
- "{{ template.path }}/footer.tex"
- "{{ template_path }}/footer.tex"
- "{{ project_dir }}/Report.md"