feat: Moves ansible stuff into .ansible, adds setup to Makefile to link relevant files

This commit is contained in:
2024-11-23 21:25:39 -05:00
parent c06697f3b1
commit 048b032b7f
21 changed files with 481 additions and 46 deletions

307
.ansible/build/Report.md Normal file
View File

@@ -0,0 +1,307 @@
---
title: "Home Performance Report"
author: "Testy McTestface Jr Vault"
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:**
Testy McTestface Sr
1234 Seasme Street Vault
No Mans Land, Foo 55555
```{=latex}
\begin{center}
```
<!-- below are just forced line breaks -->
\
\
\
[![logo](img/logo.png){ width=30% }](https://example.com)
```{=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 3,000 [CFM50] for the approximately
3,000 \squarefoot (1:1 [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 3,000:3,000 \squarefoot for a ratio of
> 1:1_
> - _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] |
| -------------------- | ----------- | ------------- | ------------- | -------- | ------------------- |
| **3,000** | **Current** | **55,102** | **20,726** | **0.79** | **1:1** |
| 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]: "img/trueflow.png"
<!-- default is img/forecast.png -->
[trueflow-forecast-image]: "img/forecast.png"
<!-- NOTE: These links are defined in vars.sh -->
[loads-folder]: "https://example.com/path/to/loads/folder"
[trueflow-file]: "https://example.com/path/to/trueflow/file"
[trueflow-forecast-file]: "https://example.com/path/to/trueflow/forecast/file"
[document-folder]: "https://example.com/path/to/document/folder"
<!-- prettier-ignore-end -->

View File

@@ -7,18 +7,20 @@
\fancyhead{}
% change font size on footer.
\newcommand{\changefont}{%
\newcommand{\changefont}{
\fontsize{8}{10}\selectfont
}
% NOTE: What is displayed in the footer of each page.
\fancyfoot[LE,LO]{
\href{${COMPANY_WEBSITE}}
\href{ https://example.com }
{\changefont\textbf{
${COMPANY_WEBSITE_DISPLAY}
www.Example.com
}}
}
\fancyfoot[RE,RO]{\textbf{
\changefont{
Phone: \href{tel:${COMPANY_PHONE}}{\color{orange}${COMPANY_PHONE}}
Phone: \href{tel:555-555-5555 }{
\color{orange}555-555-5555
}
}
}}

1
.ansible/group_vars/all/all Symbolic link
View File

@@ -0,0 +1 @@
.ansible/group_vars/all

View File

@@ -0,0 +1,35 @@
$ANSIBLE_VAULT;1.1;AES256
37616334353636316232656136313764353534613834383266646665396364393233343464306632
3834666636616134356661626238323731616438366539630a616565613030376235306233356266
34323930656134363964666130613434313262313461373735656434333634333238343430353331
3732373966383635310a303665663732343561303239356634393162306666323836643765313638
38363130366534353164376333313435336362313438643166346236623537616438383437643965
36343833393237336239633433326535616562316561666539343362636564633262303337383631
62336331663032333039643033626634663636643762373539623262326462323762666435646362
37633538346530646362383464363732663164303937313635363833366639623662323263633431
39653434386263353834373239353236636538623632663061323431303937643761373364663835
34303030383536383833363639623661363531643734303265386532326439346463376436613033
66396536323865623832633663643936623531663734646630373966393562643439343631363365
34303833303935313334663831616435343130376536666631643231373333656363386566363865
62303062306565363535663261623361646464383166366233396233663838363136663461663630
39316234653834393739386564663866613765323333393932616133613231333664373839643364
34386335363065336632376135336132633331306435383861303261386564346136323562346432
33343132636239396231653832313431623539616434353163333637653738656436646135633666
36353266343932666538373137623162316566353437653066346338613732346662313433326261
32343164613165383065333738633338653763366534303930656361393031353736643233366631
65313931613833633037663631393861663134663239303033323135356130623062333634643331
39613761613332613231616437303835333961646235386232306235613664336533666663613834
62353237643461316563626538333936333261623039303663613230643962643139353734656630
33636136303732376432363862363534646631303566666331373435643532653931376263376665
38333037643730613637363832663838383231373765613531316664373334643232326365336531
35656433313461633939383661323464373933623963653438323366343661656138653135636235
63646135646561663863353236353939636531666166363866656230383931343937343834633263
61313338616263616636633232633464643530313763323064343838643036316135353366373933
64343235343435313664383630613639633233383766386265383264386133303063396339353731
33373631336265303561633663656433643837346438353131383565333062383238633264646532
31313931656533313031313032663035356438326365643262313734323661396465393138633564
62383166313334376639343265366136396230643236303635303638313833333836636330663262
63623434313838376366303763303961373733396163613365376236363233313438393637343064
32623233633963623830356331383462666438656132303938386437323332366634656236383664
38626539346339663533373062363531393263613636636237616263316537376438653339623435
6238656639353432653566353865386562643830333831656336

View File

@@ -0,0 +1,47 @@
# Definitions
<!-- NOTE: Keep these at the very bottom, if any new definitions are added then
they should also be added as links to the content section near the top. -->
### CFM50 {#cfm50-definition}
Is a unit of measurement that is taken when a blower door test is performed on the home. Stands for
$C$ubic $F$eet per $M$inute at 50 pascals.
### IAQ {#iaq-definition}
Stands for $I$ndoor $A$ir $Q$uality. We spend most of our time indoors, so having good indoor air
quality can help reduce illness and potentially improve the quality and longevity of life.
### LAIR {#lair-definition}
Stands for $L$eakage $A$ir $I$nfiltration $R$ate, which is a metric that compares the square footage
of the home and it's blower door number. This aids in determining if a home is controllable by
properly sized HVAC equipment or if [shell] improvements (air sealing and insulation) should be
considered.
### Load Caclulation {#load-calculation-definition}
A load calculation, also called a Manual-J, calculates the heating and cooling requirements for a
home. Each home has a unique heating and cooling load based on the direction it faces, the air
leakage, the location, the insulation values, the types and sizes of windows, among other factors.
### Shell {#shell-definition}
Shell is a term used to describe the enclosure of the house. It is often used when talking about air
leakage and insulation levels.
### SHR {#shr-definition}
Stands for $S$ensible $H$eat $R$atio. Sensible heat ratio is the ratio of work required by the air
conditioner to remove moisture, as well as maintain the sensible temperature. The higher the number
the better.
### TESP {#tesp-definition}
Stands for $T$otal $E$xternal $S$tatic $P$ressure, which is a metric used to determine how much
resistance the blower motor has to overcome for the airflow requirement of the system.
### WC {#wc-definition}
Stands for $W$ater $C$olumn, which is a unit of measurement for pressure.

View File

@@ -0,0 +1,74 @@
% https://jdhao.github.io/2019/05/30/markdown2pdf_pandoc/#the-top
% These were adapted from the above, which was very helpful in getting this
% functional.
% change style of quote, see also https://tex.stackexchange.com/a/436253/114857
\usepackage[most]{tcolorbox}
% change page margins
\usepackage[top=2cm, bottom=1.5cm, left=2cm, right=2cm]{geometry}
% change the line spacing
\usepackage{setspace}
\setstretch{1.25}
\usepackage[utf8]{inputenc}
% NOTE: This needs to stay above hyperref otherwise internal links break.
% start each section on new page and make section titles orange.
\usepackage{titlesec}
\titleformat{\section}
{\color{orange}\normalfont\Huge\bfseries}
\newcommand{\sectionbreak}{\clearpage}
% custom colors
\definecolor{applegreen}{rgb}{0.55,0.71,0.0}
% Remove figure from images
\usepackage[labelformat=empty]{caption}
\usepackage{fancyvrb,newverbs}
% see for different color codes https://rgbcolorcode.com/color/E6FFEA
\definecolor{linequote}{RGB}{224,215,188}
\definecolor{backquote}{RGB}{230,255,234} % background color of quotes
\definecolor{bordercolor}{RGB}{221,221,221}
% change left border: https://tex.stackexchange.com/a/475716/114857
% change left margin: https://tex.stackexchange.com/a/457936/114857
\newtcolorbox{myquote}[1][]{%
enhanced,
breakable,
size=minimal,
left=10pt,
top=5pt,
bottom=5pt,
frame hidden,
boxrule=0pt,
sharp corners=all,
colback=backquote,
borderline west={4pt}{0pt}{bordercolor},
#1
}
% redefine quote environment to use the myquote environment, see https://tex.stackexchange.com/a/337587/114857
\renewenvironment{quote}{\begin{myquote}}{\end{myquote}}
% remove the abstract title.
\usepackage{abstract}
\renewcommand{\abstractname}{}
\renewcommand{\absnamepos}{empty}
\def\squarefoot{$ft^{\text{2}}$ }
\def\goalsimage{
\begin{center}
\hfill\break
\hfill\break
\includegraphics[width=0.6\linewidth,height=\textheight,keepaspectratio]{img/goals.png}
\end{center}
}

View File

@@ -3,6 +3,7 @@ TEX_TITLE ?= "Report.tex"
HTML_TITLE ?= "report.html"
BUILD_DIR ?= "${PWD}/build"
PDF_TEST_TITLE ?= "Report.test.pdf"
ANSIBLE_DIR = ".ansible"
.PHONY: pdf
pdf: ansible
@@ -29,21 +30,23 @@ install:
.PHONY: ansible
ansible:
@cd ./ansible && \
@cd "${ANSIBLE_DIR}" && \
ansible-playbook playbook.yaml \
--extra-vars "build_dir=${BUILD_DIR}"
.PHONY: ansible-vault-example
ansible-vault-example:
@cd ./ansible && \
@cd "${ANSIBLE_DIR}" && \
ansible-playbook playbook.yaml \
--extra-vars "build_dir=${BUILD_DIR}"
--ask-vault-password \
--extra-vars "build_dir=${BUILD_DIR}" \
--extra-vars "@group_vars/vault_example/vars.yaml" \
--extra-vars "@group_vars/vault_example/vault.yaml" \
.PHONY: link
link:
@ln -sfv ./ansible/roles/report/templates/Report.md
.PHONY: setup
setup:
@ln -sfv "${ANSIBLE_DIR}/roles/report/templates/Report.md"
@ln -sfv "${ANSIBLE_DIR}/group_vars/all" ./vars
.PHONY: clean
clean:

View File

@@ -1 +1 @@
./ansible/roles/report/templates/Report.md
.ansible/roles/report/templates/Report.md

View File

@@ -1,35 +0,0 @@
$ANSIBLE_VAULT;1.1;AES256
34356166663933373435353334376433633137323838373832616335396232366536353766613131
3465313832383733326433613862363639353665306164660a643534646438353233393239373866
38336631623166643065653738393330616535656237376438323438363934323935363565393632
3462366164323233640a343966303361656261383138306664333930636433383261653066626639
63626465323266346164313030343963623661666233633236363439303164396431306165646533
33353562386337343538363333313362333362643230353536656535383931333665653335383130
34353130653836633531336563323831333337353936313737303239653539623263356261303635
31373832396438643466326361396162316134313833303732633062326531346637313665663037
63393261666436363062306436313334356465316361383938646162333130356130323736633761
34396530356231623437633163363762333461303337363539366638376462663561313437313938
30306335303638633037383732646236663437333362626433366330326566633532396535346165
64376663346132666538343566343437323763633532303336646330626439353334643837383165
66323261656466363237346661653232363766646265643037343366373133663739383532643161
63353338663537313430653066373764376437393364363438363834616363653139396237656534
34343332393030383863306664613434653665303336346163613161363431633236316138396537
37373332326233326264613337303134626661663930316434303865633365353437313363343834
61656266343466656239623366366538343937363932613966333832646534653462366637623163
31383733303736353565306637653532346431666666303931616232656138616532653161666463
37623734303436653664353261363664666138666436626330316437396237313131663361373634
61383061366263313239643665356638666361666561313532636563643932613462616131396363
36636362613463336136633962386139353965636538666562383831313661376261396531306631
32346264633631303164643832613835376432636331396234323034656438363638633633353363
36303831653534333031623437663832323961323763323863643562343137323164373161343130
31306132343235333735616437376662336464643431643563623731333463353631626238656262
38613637626433303866336330636234363534626664306337613832623433663866646430373666
66626131383839356337653461343866313431666566633230653831303062636433623830383236
39626137653461353535333366393633356538633437356563323663616466623737323438666438
33623364303961363666653930393466613938333537336530616461333036646265343032653362
66303237363631353631346137643539333435323535356133313530393238623239333233656265
62303633376233646334663633613838303462613662643433663465323864396265383165313932
61346434633965656133646264373034616538653330663661306562613730376432363564646461
34636462666337303465666564393465363865343763623832383735616237373331623231333931
33323965353864313932623339383431636536633734393065373437666461636666373364356535
3666336333306431306630663537383235653735363662343636

1
vars Symbolic link
View File

@@ -0,0 +1 @@
/Users/michael/projects/hpa-consult-report/.ansible/group_vars/all