feat: Adds hpa-video script.

This commit is contained in:
2025-11-22 10:34:47 -05:00
parent a1ab8b0d68
commit b4941d5bdc
3 changed files with 283 additions and 0 deletions

2
.editorconfig Normal file
View File

@@ -0,0 +1,2 @@
[*.md]
max_line_length = 80

2
.prettierrc.yaml Normal file
View File

@@ -0,0 +1,2 @@
proseWrap: always
printWidth: 100

View File

@@ -0,0 +1,279 @@
# Based HPA Report Video Script
<!-- IMPORTANT: Make sure showmethekey is open, make sure that switching from web-cam to screen share works! -->
In this video I'm going to walk through my **based** home performance assessment report generation
workflow.
## Introduction
In today's world of big-tech companies scraping the internet to train their AI models, I've
developed a workflow that runs entirely on services that are self hosted on my own internal servers.
It is a keyboard centric and terminal / text based workflow using tools like neovim as a text editor
and markdown as the document format.
Markdown is a light weight text based file that is able to easily be converted to other formats,
such as pdf's or html. It allows me to separate the actual text / writing from the formatting of the
document and allows me to store the files in a **git** repository.
So let's jump in...
<!-- NOTE: Switch to screen share with web-cam -->
<!-- NOTE: Run fastfetch / have it on screen, so that I can say "I am running on arch linux (btw)"-->
## Generate a new project
To generate a new project, I run the following command:
```bash
cd $(hpa-create Testy.McTestface)
```
This creates a new home performance assessment project from my template and moves into the generated
directory. It also generates a `git` repository that I use to store the template files in.
<!-- NOTE: create a tmux session -->
```bash
tns
```
## Review the generated directory structure
<!-- NOTE: open yazi to browse the structure -->
This is how I like to structure the project / organize my files.
1. The `Airflow` directory is where I store TrueFlow reports for the project.
1. The `img` directory is where images are stored.
1. These get inserted into the final report.
1. There are several photos that get copied from the template, company logo, goals, and signature.
1. The `ManJ` folder is where I store **Manual-J** files.
1. The `justfile` holds common scripts / commands that I use during the process while working on the
template.
1. The `Questions.md` file gets filled out during my site visit.
1. It is where I gather information from the homeowner about the project, their goals, and how
their current comfort is in the home, my notes from while on site, etc.
1. The `Report.md` is the primary file that I edit after the site visit and gets converted into the
final pdf document that is sent to the customer.
1. The `README.md` is used as a checklist of items that need completed.
1. The `vars.yml` file stores project specific variables that are used in the final report.
1. The `vault.yml` file is an encrypted file that is used to store sensitive customer information,
name, address, etc.
## Edit the variables
<!-- NOTE: Open vars.yml -->
The variables are used for project specific values that get inserted into the final report. Here I
need to update the square footage of the home, the CFM50 for the house, and the LAIR.
### Edit the vault.yml
Next, I have to setup the sensitive customer information in the `vault.yml` file, by running.
```bash
just edit-vault
```
This temporarily decrypts the file for me to edit it, then once saved it get's automatically
encrypted again.
<!-- NOTE: Show that it is now encrypted -->
## Explore the Report template
<!-- NOTE: Open report in neovim -->
This is the template that is generated, the top section here is just for generating the header page
### Table of Contents
That is followed by a table of contents, these turn into section links in the final pdf, just makes
it seem more professional and makes it easier to navigate within the file.
### Introduction
The introduction section is just some boiler plate text that doesn't need to change.
### Goals
Next is the goals section where I will list out the goals and their rankings that were discovered
while on site and are in the `Questions.md` file.
### Air Leakage
After the goals, I have some boiler plate language about air leakage and why it matters, this
section uses some of the project specific variables that will get inserted into the final report. I
also link to image of the CFM50 here.
### Zonal Pressures
I also generate a table of the zonal pressures that were taken while on site and which zonal
pressures are the highest. With a disclaimer that we use a simplified calculation for connection to
outside, which is to hopefully help the customer realize the relationship with air leakage and
comfort.
### Observations
The observations section is where I list out observations I had while on my site visit. I break
these out into HVAC observations and House observations. These are derived from the questions that
were asked as well as the plethora of photos that I take while on site.
### Load Calculations
In the load calculations sections I generate a table of the different loads that I performed after
the site visit. Once I model the house in the load calculation software, I always like to see what
happens to the loads at several different air leakage rates. Often one that I call improved which is
a target that I think is easy to achieve without a huge upfront budget, then one that I think is
going to be harder to achieve without a larger upfront budget.
This allows the homeowner and myself to have an idea of if the equipment sizing may be different if
the were to choose to do shell upgrades to the house, which I will also briefly explain in this
section.
I also think this table is little bit easier to digest than the full Manual-J reports. I think that
most homeowners may not have a great understanding or may get confused looking through the full
reports (although they get access to the full reports if they do want to dive into them).
### Airflow / TrueFlow
In the airflow assessment section, I start off with some boiler plate talking about static pressure
and why it's important. Along with some general ranges of what is considered low, acceptable, and
high.
I then link to screenshot of the TrueFlow report that was taken while on site and summarize it's
results.
I will also have at least one TrueFlow Forecast report that also get's a screenshot inserted and
summary. Depending on the project, I may add more than one forecast report here.
### Summary
The summary section is where I need to put most of my effort in. This is where I'm able to tie all
the sections together, give my opinions about what may be the best paths to proceed down, as well as
give rough estimates that could be expected for those paths.
This allows me to not spend my time generating a bunch of quotes for items that they are not
interested in exploring in the end. We can then have a follow up conversation to hone in on what if
anything they would like to get firm prices for.
## Explore the checklist
<!-- NOTE: Copy pre-generated files -->
Since this video is about my workflow post site visit, I am going to copy some files into the
project.
```bash
cp ~/tmp/Airflow/* Airflow/
cp ~/tmp/Questions.md .
cp ~/tmp/img/* img/
cp ~/tmp/ManJ/* ManJ/
cp ~/tmp/Report.md .
```
<!-- NOTE: Briefly show in yazi the file structure now -->
Now I'll work on checking things off the project checklist.
1. We've done the site visit items
1. Performed the manual-j
1. Generated TrueFlow forecast and taken screenshots
## Explore Completed Report.md
I'll quickly run through some of the completed sections of the report that I copied into the
project.
1. Goals that were discovered and ranked during the site visit.
1. Zonal pressures that were taken during the site visit.
1. Observations
1. Loads
1. Static summaries / forecasts
1. Summary
## Generate a pdf and review
At this point I will generate a pdf, so that I can begin to review what the final report will look
like that gets sent to the client.
```bash
just pdf
```
<!-- NOTE: Scroll through the first generation of the pdf -->
## Cloud Storage
Once I'm happy with the report, I will copy the appropriate files to "cloud" storage, which is
actually just a Network Attached Storage (NAS) that runs here at my office.
```bash
just cloud-storage
```
<!-- NOTE: Show the web interface to nas, refresh the page to show a new directory was created -->
## Short Links
At this point, I'm happy with the report. I've generated cloud storage. The final thing that I do to
complete the report is generate short links.
<!-- NOTE: Show shlink web interface -->
> NOTE: I have self hosted version of something like `bit.ly` that also runs here on my servers.
> This allows me to generate links and have a little bit of insight into how many times they were
> clicked / visited.
Back in the NAS interface, I have several links that I need to generate that allows temporary access
for the customer to access their files on my server. For security reasons, I will only allow access
for a period of time (typically 30 days). This gives the customer time to download the files and
store them on their own devices.
<!-- NOTE: Back in Report.md -->
At the bottom of the report is where I have references to the links that get used throughout the
document. I'm going to paste the link that we just created to the document folder here. Next, I can
generate a short link using some keybinds that I setup in neovim. This prompts me for a few inputs
that are needed.
1. Tags
1. Expiration
1. Short code (not needed)
As you can see, that generated a short link and replaces it here on the line that I'm in.
<!-- NOTE: Repeat for other links -->
## Finalize the Report
Once I've completed the short links, then I need to regenerate the pdf one last time and just
confirm that the links work.
Once I've confirmed that, then I run `just cloud-storage` for the final time to make sure that the
final report is copied into the clients folder. I would then email the final report to the client
and I can complete the rest of the checklist.
## Commit changes to git
Once all that is done, I will commit the changes to all my template files.
```bash
git add .
git commit -m "Finalizes report"
git push
```
## Summary
That is my workflow for generating home performance assessment reports. I know that this workflow
may seem a bit complex, but once it is used for it becomes muscle memory. It removes my reliance on
big-tech companies and their clunky software tools. I do not need to fumble around formatting the
document by using a mouse (gross)! This allows me to focus on the tasks that I need to spend the
majority of my time on efficiently and offers consistent reports for my clients.
I hope you've enjoyed this video, let me know what you think in the comments below and don't forget
to like and subscribe! Thank you for watching, I appreciate your time!