feat: Test copying entire project directory.
This commit is contained in:
0
project/Airflow/.gitkeep
Normal file
0
project/Airflow/.gitkeep
Normal file
0
project/ManJ/.gitkeep
Normal file
0
project/ManJ/.gitkeep
Normal file
307
project/Report.md
Normal file
307
project/Report.md
Normal 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 -->
|
||||
\
|
||||
\
|
||||
\
|
||||
|
||||
[{ 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, let’s 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 you’ll 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
0
project/img/.gitkeep
Normal file
55
project/justfile
Normal file
55
project/justfile
Normal 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}}
|
||||
1
project/project.gitignore
Normal file
1
project/project.gitignore
Normal file
@@ -0,0 +1 @@
|
||||
.build/*
|
||||
40
project/vars.yml
Normal file
40
project/vars.yml
Normal 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
34
project/vault.yml
Normal 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
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user