Category Archives: Cool Geek Tricks

If you give a Mouse a cookie (Electrolux style)

If you give a mouse a cookie, they’ll get crumbs and chocolate all over their clothes. When they get crumbs and chocolate all over their clothes, the laundry piles up.  When the laundry piles up, you will need to use the Electrolux front-loading washing machine.

When you do several years-worth of laundry in the Electrolux front-loading washing machine, you’ll eventually discover it was leaking all over the floor.    And you’ll call a repair person.  And then another.  And another.  And another.  And another.  And another.  Four will tell you Electrolux front-loading washing machines are “bad news” and decline to fix them.  The fifth will tell you he’s on injury leave (we wish him a speedy recovery), and the sixth will say he will fix it, but the earliest appointment is in two weeks.

When the sixth repair person tells you it’s going to take two weeks, you accept the appointment.  The next day, as clothes pile up from mice eating cookies, you realize schlepping twelve loads of laundry a week to the run-down Issaquah laundromat is Non-Optimal, and you research.

When you research, you discover a metric crap-ton of search engine optimization going on to dozens of links that ultimately look like the same company trying to sell a repair manual for $20.  When not deploying a middle finger at the attempt, you keep on researching until you find an exploded parts diagram to give you the idea of the complexity.

With an idea of the complexity, you saunter over to for a no-bullshit video and diagnostic tool.  When you iterate through their top four things to check:

  • Water connections
  • Wastewater connection
  • Bellows — this is the rubbery gasket thingie that sits between the door and the spinning drum.  It was not leaking but, after seven years, it was really nasty and was on the “to replace anyway” list.
  • Wastewater pump — this is on the bottom, front, right of the washer and seemed very plausible.
Washer bellows
New washer bellows

You realize that your Electrolux front-loading washer is a complex machine that, unlike every other appliance owned, was designed to be serviced by human beings.   A single Phillips screwdriver and a copy of Cryptonomicon (to prop up the front of the washer) were all I needed to get this far:

Okay, it's apart. Now what do I do?
Okay, now what?

When you get this far, you realize the top four options on RepairClinic were wrong.  The live drip from above is your clue: the cold water valve was leaking from the solenoid on the water valve.

When the cold water valve continues leaking from the solenoid on the water valve, you order that part from RepairClinic and a bellows (out of stock at RC) from Amazon, both delivered via two-day air.  You also know the water faucet shutoffs aren’t working.  Nor is the whole-house cutoff that you really should have gotten fixed in 2002.

While you ponder this, you look for a plumber in a hurry.  When you are in a hurry, you get a guy young enough to be your son, and equally as experienced.  He will charge $250 for the two faucets plus $500 for the main house so this doesn’t happen again.  When he attempts each repair, he needs to take a trip to Home Depot for parts.  When he makes the trip to Home Depot, you begin to rue hiring this person.

The next day, laundry piled higher, you can remove the old parts, and see the corrosion on the blue and yellow thingie where water was leaking at the valves for who knows how long.  And when you do, you will admire the buckling of the hardwood floors refinished in 2010.

Water Pump
Water Pump

After catching up on a week’s worth of laundry, you will realize that summer has passed and it is time to put the house fans in the crawlspace for the season.  When you’re in the crawlspace, with your spider friends, you are curious and wander back to this:

Water pressure regulator. Reduces the higher pressure in to a 25 - 75psi range.
Water pressure regulator. Reduces the higher pressure in to a 25 – 75psi range.

When you see this, you wonder “What the hell is that thing” and do more research, because whatever the hell it is (water pressure regulator, likely the original unit installed when the house was built 30 years ago) is leaking.  Having well-adjusted household water pressure is a good thing, because you want adequate flow, without tearing the valves apart.

When you have a bad experience with a plumber, your first reaction is to try the next job yourself.  However, when you think of all the times you’ve done plumbing, you get sad.  When you get sad, you ask around for a recommendation for a professional.  A professional plumber will have a backlog, but in the meantime, you can answer some Plumbing Questions like “How big is the line?”  When you will make another visit to the crawlspace, much to the delight of your spider friends, and measure the pipe (1″):

Measuring the pipe
Measuring the pipe

You’ll notice how quiet it is this part of the evening.  Except for a disturbingly audible “drip drip drip” on the plastic vapor barrier.  When you hear an audible “drip drip drip” on the plastic vapor barrier, you become sad again because you need another plumber.  However, while you’re down there anyway, you’ll want to look for what’s actually leaking, just in case it’s something that your skills can make less worse.

When you look for what’s actually leaking, you’ll notice you’re directly downstairs from the whole house cutoff replaced the prior week.  When you go back upstairs, you decide to inspect the work a little closer.   When you inspect the work a little closer, you notice something wrong:

Hint #1: putty. Hint #2: The leak
Main water cutoff: What’s wrong with this picture?

When you pick your jaw up off the floor, you’ll say “holy crap, I’m not a plumber, but is that putty?  Being used as a pipe patch?”   The prize, a soggy piece of drywall, is slightly more adhesive than plumber’s putty, which is normally used in sink drains because it’s pliable, water tight but completely lacking adhesive properties necessary for a 50 psi line. 

When all between an active leak is a sad piece of plumber’s putty, you shut the water off, causing a ripple effect in the time-space continuum that manifests itself as every female member of the household having the urge to go to the bathroom right now.  There may be yelling.  When there’s yelling, it’s hard to explain to the plumber’s company’s answering service that their employee did a non-optimal job, please come fix this now.

When junior plumber comes back and spends three hours, he will  produce this:

Take two
Take two.

This new, left-handed valve, though substantially less leaky than the previous attempt, still has a minute leak.  But the situation is under control (for now).  With a very moist wall, a trip to Home Depot for a humidifier is in order.

When you run a dehumidifier, it pulls water out of the local surrounding.  When run in a bathroom, that is most likely the toilet.  To prevent this, apply some plastic wrap in a way that feels like some college prank.

Bad news comes in threes.  While spending the last sunny Saturday of (possibly) the year, I tented off an area with plastic to set up the dehumidifier and emptied the tank three times a day, much to the delight of my spider friends.  In anticipation of plumber #2’s visit, I removed the tent and discover a slow drip in the sewer (!) line heading out of the house.  Fuuuuuuuuuuuck.

Stinky Leak
Leak #1 on the poop superhighway.

When plumber #2 showed up to replace the pressure regulator, I asked him about the sewer and the whole house valve.  (No. Way. In. Hell. I’m calling back the original guy.)   The sewer is going to require another visit: all those junctions on the poo superhighway mean the whole thing needs to be cut out and plumber-healed.  He can’t do it today, because there are custom parts he doesn’t carry with him, but suggested I schedule it with his wife and he’ll make the list.  “Do you have a bucket?”

Leak #2
Leak #2: from the kitchen sink/dishwasher

The first night, the bucket had a gallon of aromatic water in it.  Emptying this much was going to be far more awful, so I researched options to temporarily minimize the leakage.   Collars (neoprene sleeves with radiator clamps), caulk, and various tapes come up as options.  Ducdt tape seemed viable, until I actually started doing it and realized how bad it is around gaps.  Electrical tape, however, worked really well.  The drip was effectively stopped.

Professional plumber came back ten days later and, in less than an hour, had all of the sewer stuff taken care of.  He spent a little longer (an hour and a quarter) removing and replacing the whole house cutoff again.

Cutoff #3
Cutoff #3

Total time: 2 1/4 hours at $200/hour plus another $120 in parts.  Totally worth it to have it done correctly.

How To Earn $200,000 And Just Get By… Bogus meme

One of the unfortunate aspects of Linked In is the abundance of stupid or bogus memes.  When someone gets really bad, I disconnect them.  However, a meme that recently caught my eye was this graphic titled “How To Earn $200,000 And Just Get By” with a link to a viral-wannabe ad (that I didn’t watch).

About five minutes of research confirmed that the author of this piece needs a different kind of help.

Warning: may contain bad assumptions
Source: may contain up to 50% bad assumptions

First, the author needs to hire an accountant.  Not only are the wrong base rates being used for taxes (overestimating it by $6k), there is also no evidence they’ve taken allowed deductions (standard deduction, mortgage interest childcare).  Net salary is closer to $146k.  (Source: IRS Topic 751)

Their cost of childcare is about 2x national average for a center-based childcare.  Savings: $12k.  Source: The Boston Globe.

The author feels entitled to take two $4k vacations, which is the average cost per week for an affluent family of four.  (Source: American Express.)  Since things are so tight, perhaps a staycation for one?  Savings: $4k with virtually no effort.

Gas is too high.  Assuming $4/gallon, 20mpg, 12k miles a year, I come up with $2,400 savings.  (Gas is currently under $2.05/gallon  Source: AAA).

Mortgage seems a skosh high.  If their house is $700k (based on the property tax note), and they have 20% down and a 30-year note, they should be able to get a monthly payment of ~$2650.  (Source.)  Savings: $4,200.

So with an hour into it, I found ways to shave the “what’s left” to be closer to $48k.  With that margin, I would pay off my Consumer Debt (unspecified in this), ditch the BMW for something modest, max out my Roth IRA contributions, and add to a 529 college savings.

One hour, and I saved them $40k
One hour, and I saved them $40k

In other words, we should not be rallying to the original author’s aid.

Removing Scratches from a Garmin GPSMAP 64s screen

A year+ of hiking has wrought havoc on the screen of my Garmin GPSMAP 64 screen in the form of numerous scratches from the unit rolling 70 feet down Rattlesnake Ridge viewpoint (when the carabiner prematurely unclicked) and rubbing up against several rock faces as I scooted along a narrow ledge to get to some insane geocache.  By last week, it was seriously hard to read:

Scratched Garmin Screen
Scratched Garmin Screen

Garmin offers an out-of-warranty repair for $99 (and three weeks), but since this is largely external damage, I looked into options for replacement glass.  The only one I’ve found was some dude in the Russian Federation offering one for $32 and six weeks.  Before I tried that, I considered some other options:

Toothpaste – this made no difference, but my GPS briefly had a minty-fresh smell to it.

Brasso – This removed the minty-fresh smell and replaced it with a petroleum distillate smell.  The screen seemed slightly shinier, but the scratches continued to mock me.

Headlight restoration kit – for about $12 (Amazon Gold Box), the kits include a spindly thing that fit in a drill, three grades of sandpaper and some polish.  This worked better.

Step 1: Disassemble the GPS.  There are six 1.3mm Torx screws on the back.

Disassemble the GPS.  There are six 1.3mm hex screws on the back.
Hex screws exposed.

Step 2: Gently pry the two sections apart a tiny bit.  The screen and antenna assembly (bottom) are just sitting on the case.  You’ll need to pry up the bottom, then slide it to the right so the antenna comes out of its shell.  You can then leave everything else connected to the “bottom” of the case.

Innards.  The front of the GPS is facing down.

The combination will look like this:

Sensitive electronics

Put this part in a dry place.  Now with the plastic shell, push the keyboard membrane until the whole thing pops out:

Pop out the rubber keyboard membrane.
Pop out the rubber keyboard membrane.

There are a lot of scratches on this screen!

Scratched screen
Scratched screen

Since I was going off the headlight kit directions, I taped off the other plastic bits of the case.  In retrospect, I don’t think this was particularly necessary since the screen juts out just a little bit higher.

Taping off the case bits
Taping off the case bits

Step 3: To the extent you can, clamp the GPS body to something that’s going to hold it firm, because you’ll want both hands to control the spinney motion of the drill.

Step 4: Dab some water on the pad/GPS.  Using the 800 grit sandpaper (the coarsest), sand the screen.  You’re going to feel bad about doing this, but it’ll get prettier.

Dab some water on the screen and sand.  You'll want to keep the screen wet throughout.
Dab some water on the screen and sand. You’ll want to keep the screen wet throughout.

As you sand, the screen is going to get a little goopy.  That’s okay.  Just keep adding water occasionally and sanding as evenly as you can.

Step 5: Switch out the 800 grit sandpaper for the 1500 grit sandpaper.  On the Goldilocks scale, this is “mama sandpaper,” not as gritty as the 800.  Repeat keeping things wet and sanding as evenly as you can.

Clamped in case after step #2
Clamped in case after step #2

This was the stage where I decided the masking tape probably wasn’t necessary, because guess what gets gradually sanded off?

Step 6: Rinse everything off and inspect.  The glass may be a little hazy.  If you see signs of the original scratches, repeat the two previous sanding steps again.

Step 7: Rinse everything off and swap the 1500 grit for the 2000 grit pad.  Repeat.  The more time you spend using 2000 grit, the better the results will be.

Step 8: Dry the screen well.  The headlight kit came with some goo that you dab onto the cloth pad and use to polish the screen.  You’ll want to keep it moist.  Also plan to spend a lot of time on this step.

Step 9: Rinse and inspect.  If everything looks great, remove the tape, clean both sides of the screen with Windex and reassemble the GPS.  If the screen isn’t clear, you will want to polish it some more.

Step 10: Dry and clean.  Assemble the GPS and test.


What can go wrong:

  1. You still have scratches: start the sanding process over with the 800 grit paper.
  2. Screen is hazy: Try polishing more with the 2000 grit.  If that’s not doing it, back down to 1500 a little bit, then go back to 2000.  Again, the super fine 2000 grit should make it look beautiful.
  3. There is a round spot in the middle: This can be caused by uneven pressure applied by the drill spinner thingie.  Your options are to either live with it — which is fine if it’s subtle — or get a block sander, the 800 grit and try to smooth it out.
  4. The case doesn’t go back together: It’s hard to see in the photos, but there is a rubber gasket that goes around the perimeter of the case.  Remove the six Torx screws, gently open the case, and reseat the gasket into the detente.
Fitbit Dashboard.  Jes continues to kick my ass.

Fitbit Charge HR review

Since my Fitbit Force was recalled earlier this year, I’d been pining for a simple motivational aid.  Microsoft’s Band looks awesome, but it’s sold out as soon as they get another batch of units.  The Garmin VivoSmart had some interesting features, but lacks stair climbs (important to me because I do so much of that in a given day) and was at the upper end of my price range.  (They weren’t discounting it for CyberThanksGivingBlackShoppingHolidayWeek, either.)  Fitbit, meanwhile, has been such a tease, but finally wanted to take my money in exchange for Fitbit Charge HR.  I’ve used it for two weeks.

I was a little nervous about the heart rate sensor needing to be super snug against my arm.  I’m happy to say that it doesn’t need to be.  If you’re used to wearing a watch, you won’t notice the difference.  If you don’t wear a watch, like me, you’ll fiddle with it a few times a day.

Fitbit Charge HR on my very hairy arm.
Clearly, my day job as a data scientist doesn’t involve a lot of physical exertion.

The heart rate sensor uses two green LEDs that need to be “close enough” to the skin to do their thing. When you take it off for charging, or if there is some kind of malfunction, the LEDs will power down.  If you bump it at night, you may get an eyeful of blinking green LED.  Reason: the Fitbit is designed to record your heart rate all day.   The pretty HR graph is available on the Fitbit web site, but not the phone application.

The web page shows the full day’s heart rate. My peak represents powering up Pike Place Market, on the way to the bus stop.

I’ve found the HR sensor works best if the watchband is two to three finger-widths from the end of my wrist. The heart rate reading seems believable. The “resting heart rate” setting should record after one wakes up, but is still lying in bed. Unfortunately, it seems to wait until I’m up and out, reading a little higher than expected. I’m sure they’ll get this kink worked out.

The Fitbit web site sorta kinda integrates with other apps and products. For example, I use MyFitnessPal to record my dietary intake because its food list is very good and EveryMove for additional motivation.  The “sorta kinda” is FitBit records my caloric intake, but not the things I ate.

Fitbit Dashboard.  Jes continues to kick my ass.
Fitbit Dashboard. Goals complete, yet Jes continues to kick my ass.

A huge plus over the Force and the Charge (non-HR) is the band has a real clasp. The little nub on the prior model was prone to coming undone when anything tugged against the band or if the nub wasn’t thoroughly pushed through.  In my first week of The Force, I nearly lost it twice.

Another really nice improvement is the sleep recording is automatic. Previously with the Force, I’d have to remember to set the timer before going to bed and unset it when I get up. Needless to say, I often didn’t. Now, it’s more of a wear and forget device, which is precisely what I wanted.

Nightly sleep measurement.
Nightly sleep measurement.  Is 92% efficient good?

Battery life seems to be on the order of 5-6 days of normal use, where normal use is “Use the vibrate to wake up Monday-Friday” (it is really nice you can set multiple alarms on different days) plus walking and occasionally hitting 10k steps. Because the cord is proprietary and apparently incompatible with every other model of Fitbit, I have been charging it roughly every fourth day.

No wonder I was feeling really awful at work Monday
No wonder I was feeling really awful at work Monday

So, overall, I’m pleased with the device. It’s also had the desired effect of getting me to the indirect route through Seattle’s stair district in an effort to boost my stats for the day.

This pancake recipe is approved by me.

More Cheese Making

It’s been a couple of years since I took the Cheese-Making class at PCC, but while thumbing through their course list again, I had the urge to try it again.  The last couple of weeks have been experimenting with:

Yogurt – I picked up a used “yogurt maker,” which is a just a fancy hotplate with a timer that keeps the yogurt ingredients at  45°C for up to 15 hours.  It looks a lot like this:

Yogurt Maker (not actual size)
Yogurt Maker (not actual size)

Making yogurt is easy-peasy:

  1. Heat 1.25L of milk to 85°C.
  2. Cool to 45°C.
  3. Stir in 150 ml yogurt as seed culture.
  4. Pour into each of the seven glass jars and let it yogurify overnight. (Key point: leave it alone.)
  5. Eat.

The yogurt comes out slightly thinner than most grocery store brands, but tastes good.  I did look at milk powder to thicken it, but it imparted the odd milk powder taste.  I suppose if it really bothered me, I could sieve it through a cheesecloth.

Ricotta – As before, this was super-easy and super-tasty, but also super-expensive when using the super-awesome Pure Éire milk.  Since I was on a roll, I used it in the Lemon-Ricotta Pancakes recipe that was in the September 2013 Cook’s Illustrated:

Lemon-Ricotta Pancakes (source: Cook’s Illustrated, 2013-09)

2/3 C (85g) all-purpose flour 1/2 t (2.5g) baking soda 1/2 t (2.5g) salt 1 C (250ml) whole-milk ricotta 2 large eggs, separated 2 egg whites 1/3 C (80ml) milk zest from two small lemons juice from two small lemons 1/2 t (2.5ml) vanilla extract 2T (30ml) melted butter 1/4 C (50g) granulated sugar
  1. Whisk together flour, baking soda and salt.
  2. Make ricotta from scratch (see above)
  3. Mix ricotta, the 2 egg yolks, milk, lemon zest, lemon juice, vanilla extract, melted butter.
  4. Stir into flour mixture.
  5. Whip the 4 egg whites and sugar until stiff peaks form.  (But not this stiff.)
  6. Stir in half of the egg white mixture.
  7. Fold in the remaining.
  8. Cook the pancakes on medium-low heat.
The yogurt is good.
I’m Jim and I approve of this pancake recipe.



Feta is in progress.  There were numerous idle moments, during which I binge-watched my accumulated episodes of Agents of Shield and Person of Interest.  The basic ingredients were:

2L goat milk

1 package mesophilic yeast

2ml liquid vegetable rennet

cheese salt

The recipe in the “Cheesemaking 101” book was pretty terse, omitting several specifics of the well-documented site here, so I’m curious to see how things turn out.

Given a choice, I would have liked to try this with sheep’s milk, but I couldn’t find any within the normal shopping radius.  The second choice, goat’s milk, was about 5-times the price of cow’s milk.  The guide book said one can also use cow’s milk, but I’d need to add some lipase for flavor and calcium chloride for texture.  Since I’m making a small batch, I went with the goldilocks compromise: goat milk.

As I started writing this, the curds just came out of the pot:

Pre-feta.  Needs to drain, ripen and be salted.
Pre-feta. Needs to drain, ripen and be salted.

After three hours of draining, The result was a nice, soft cheese blob.  Had I started this project earlier, I would have let them sit out for a few more hours to firm it up, but I need to go to soon.

After draining for a few hours, we have a ball of cheese.  Whee!
After draining for a few hours, we have a ball of cheese. Whee!

I cut the ball into 2cm cubes, lightly salted the result, and put them in the fridge for ripening the rest of the week.  I did give some serious consideration to brining (8% solution), but there was a suggestion that it might cause the cheese to fall apart.

Salted feta cubes, ready to ripen for a week.
Salted feta cubes, ready to ripen for a week.


One aspect that I hadn’t really thought about was how I was going to maintain a balmy 30°C.  The stove top temperature seemed to take freaking forever to get close to it.  Once there, it suddenly shot up and I had to remove it entirely.  It’s really too bad the yogurt machine doesn’t have a lower setting.

Peeking forward a bit in the cheese-making book, I noticed cheddar needs to be eaxed and then ripen at around 15°C for a few months.  As best as I can tell, the crawlspace would be the best location, but it’s unclear if that would lead to problems.


Garage Door Automation

Garage Door Automation

A few times a year, the last person coming into the house via the garage will forget to shut the door, leaving its contents vulnerable to critters or the unruly, post-apocalyptic mobs speeding through our quiet suburban streets at night.  The obvious solution is to check it each night before I go to bed.   But that’s a lot of diligent peeking into the garage (where there are known spiders) for an event that occurs a few times a year. Invariably, after two weeks of “no change,” I completely lose interest until it happens again a few months later.

Kids these days
What I imagine at night. But really, it’s just teenagers.

The most recent incident coincided with my finishing the stack of old Make magazines in the reading room, thinking I really ought to do some kind of project with the Arduino Uno on the bookshelf besides making the LED blink.  Some sleuthing online found the GarageMote, a nifty little project where two Moteinos (tiny Arduino-compatible boards with on-board transmitters) are combined with a Raspberry Pi serving as a gateway.  How could I resist the opportunity to completely over-engineer a solution to an infrequent (but bothersome) problem?  But could I complete it before the raccoons gained unfettered access to the power tools in my garage?

It's really tiny.
Spoiler: yeah.

The Moteino is about the size of an SD card:

Moteino comparison - source
Moteino comparison – source

I went with the higher-powered transmitter because I didn’t want to deal with any interference from the load-bearing walls between the garage and the Carson Household Backbone Network.  (It sometimes floors me that I have >20 devices on my home network).  Power would not be a constraint.

915MHz, high-output transmitter
915MHz, high-output transmitter

The first step was to solder all the little header pins onto each Moteino.  Because my soldering skills had atrophied in the two years since my last significant project, it was necessary to do a thorough inspection on the first unit before I powered it up and found myself up a Creeque Alley without a paddle.  Two egregious solder blobules were exorcised.  Before starting the second unit, I picked up some do-over aids like a tip cleaner, solder wick and solder sucker.

In retrospect, I should have started with the GarageMote unit because it’s only four components (two resistors, a diode and a relay) and not all pins needed to be soldered.

To keep the package small, I opted for a Moteino without an on-board USB jack.  Initial powering and programming is done via an FTDI connector.  This was really, really easy to use.  Soon: LED on.  LED off.  Yay!

Programming the sensing unit
Programming the sensing unit

Felix’s sample code snippets included the logic for the GarageMote plus the library for the transmitter, making the entire endeavor pretty simple. I added a few more debugging routines to let me test the serial port communication (each Moteino can emit a haiku) and pin inputs (snarky comments).  And because I was now a pro at making the LED blink, that’s a diagnostic in case the serial port is not connected (which in most cases, it wouldn’t be).

I tested the components by waving magnets in front of the sensors and gleefully watching the changes in the state machine.  Yes, I am easily amused.

The Raspberry Pi linux gateway is the human interface to all of this.  In concept, I could check and change the status of the garage door by hitting a web server.  Given how many *nix machines and web servers I’ve set up in my lifetime, I assumed the procedure would be equivalent to my looking at it for a few seconds before the operating system self-configured.  But no, this was the most challenging aspect because the components were fussy.

Raspberry Pi connected to the receiver.
Raspberry Pi connected to the receiver.

Configuring the Raspberry Pi was very straightforward.  I plugged the video out into my TV, booted Ubuntu, and then set up the WiFi card so I could do everything remotely from the comfort of the man couch.   The individual components to the gateway — Node, a SerialIO driver, a custom-compiled version of NGiNX, self-signed certificate — individually installed without a hitch.  I even chose the correct pins to wire up from the GPIO pins on the Pi to the Moteino and … spent time over the next couple of weeks debugging why the NGiNX server wasn’t proxying requests to Node and reviewed Felix’s guide.  I believe there may have been issues with the lack of a real-time clock on the Pi and the self-signed certificate.  Or maybe it was just a Transient Subspace Anomaly.

No, really, this is exciting.
Door goes up.  Door goes down.  I. Am. Easily. Amused.

After verifying everything was working, I installed it onto the garage door.  During the first attempt, I bent a sensor wire too much, breaking a solder joint and one of the leads at the most inconvenient place ever.  A part was ordered and much longer wires used, reinforced by electrical tape.  It was solid!

Assembled, just some clean-up to do.
Assembled, just some clean-up to do.

In testing the installation, I realized the door vibrates a lot as it’s in motion.  This wrought havoc with sensor alignment until I installed a horizontal guide (a piece of leftover base board from my kitchen remodeling project) on which the sensors are zip tied.  Power comes from an old cell phone charger rescued from a recycling bin.

The complete overkill and renewal of my Geek Cred was a lot of fun.  After cleaning up the assembly, I’m going to add some automation rules to the server side to warn if the door is left open and, if no response is made, shut it automatically.  Next project may involve controlling the thermostat in the house.