freeze damage Friday
Friday, March 18 2022
At 12:45 pm this afternoon, I suddenly heard a welcome herald of spring: a phœbe emphatically announcing itself (in English, no less) over and over again outside the laboratory window. Phœbes usually return like the swallows of Capistrano on the same day every spring, and that day is usually March 23rd. So spring, at least as determined by this metric, was arriving five days early.
Other bird news is that a pair of Carolina wrens have been doing the whole "Jupiter! Jupiter! Jupiter!" thing in and around the yard west of the house (it turns out we're at the very northmost limit of their natural range). On Wednesday when I was talking to my brother Don, my mother Hoagie was audible in the background, and when I told her to listen for the "Jupiter! Jupiter! Jupiter!" call, she heard it, and started delightedly shouting "Jupiter! Jupiter! Jupiter!" as well. Usually house wrens nest in the upstairs bathroom's vent pipe, but while I was on the phone with Don and Hoagie, I saw these Jupiter-loving Carolina wrens checking it out.
In support of my old team's late-March tax season, I've been back working on the Taxinator, the tax-importing app I wrote to import New York (and, in one case, Kentucky) taxes into the database for a tax office's real estate tax software system. In the process, I learned some interesting things. My old team wanted the Taxinator to run multi-instance, meaning several instances of it could be building taxes simultaneously without stepping on each others' feet. The problem getting that to work was that it's an Electron app with a backend and a frontend that need to communicate over networking ports, and there is apparently no way to change the ports on the fly. But maybe if I could get the ports into one specific area, I could change them before launching the app using a .bat script (or something similar). I made good progress moving the specification of port out to property in package.json. To read that information from within the app's Angular code, I had to "import a JSON module," which required tinkering with every file having a name similar to "tsconfig." But by the end of the day, I got it working.
Another issue with making the Taxinator multi-instance is that it writes a bunch of pipe-delimited files in a directory on the database server and then calls a stored procedure to bulk import them. The problem with that is that the files bulk-imported always have the same names for every build, so if two builds are happening at the same time on the same database server, there's a good chance that the data in one build's file will be overwritten by data from the other build. To solve this, I implemented subdirectories in the bulk import directory. I had that working correctly by the end of the day too.
Meanwhile Gretchen was driving back from The City and I was hoping to sneak out of work early so we could drive up to the Adirondacks. But of course what happened instead was that U, the impatient & unpleasant software architect guy on loan from corporate central who has been providing guidance as I build an AppStream login system, called a meeting out of the blue at 4:30pm, and it lasted until 5:00pm. It wasn't really about the stuff I'd been working on but about some single-sign-on configuration that had been slightly misconfigured by Dr. Dan, the guy in the company I've mostly been working with on this.
But then Gretchen and I were free to go. Earlier in the day, I'd loaded ten of those windowed panels from the Red Hook office onto the Forester's roof and crammed one of the oversized bean bags from that same office through the Forester's rear hatch, to sit on top of the bluestone pieces I'd gathered yesterday. This left the backseat open for the dogs, but we didn't have much more available payload beyond that. Of course the straps holding down the window panels managed to make a racket in the wind even though I'd twisted them all, so at some point I added a bungee cord to the front one. But later the back two straps started flapping noisily, something we just endured.
Even before we got on the Thruway, I had to make an emergency stop at the parking lot at the northmost end of the Hurley Rail Trail so Gretchen could take an emergency diarrhea behind a guard rail. She would've had perfect privacy there, but then a befuddled cyclist arrived thinking the rail trail kept going. It most definitely does not, so he made a U-turn and went back the other way. I think he was so embarrassed by this minor display of ignorance that he didn't notice Gretchen back there at all. But even if he did, it didn't matter at all.
After that, our next stop was our cabin in the southern Adirondacks. There was less snow up there than expected, but Woodworth Lake itself was a little treacherous to drive on even though it was clear of snow. The problem was that it was thawing unevenly, with patches of hardness interspersed unpredictably with little quagmires. These tended to push and pull the vehicle sideways unpredictably. Gretchen started giving me advice on how to drive in response to my complaints about this, and that was not what I needed while focusing on the treacherous task at hand. "Okay, how about just let me drive, okay?" I said.
It had been balmy in Hurley, with temperatures in the 70s, and they'd been pretty nice even in the southern Adirondacks. Outside at our cabin it was about 60 degrees, though the cabin was holding a pocket of colder air from an earlier time. In there it was 50 degrees on the first floor and 37 in the basement.
After getting a fire going, I devoured some sort of Greek-style vegan shawarma wrap Gretchen had bought (along with dinner for herself, Powerful, and lunch for us tomorrow) in the City.
My first task for the cabin after getting some food into my stomach was to get the household plumbing reactivated. As a precondition for this, I had to install drain valves in the lines supplying the basement's two kickspace heaters. After assembling two 3/4 inch drain valves on 3/4 inch tee fittings, I discovered that our stoner plumber Little John had plumbed the kickspace heaters with half-inch PEX, and I didn't adapters to make any use of what I'd just assembled. So it seemed the strategy for the time being was to disable that zone, as the priority for this weekend was to have heat upstairs, and it was unlikely freezing temperatures would return to the basement any time soon. But to disable that zone would require disconnecting its circulator pump, since the lowest the controlling thermostat would go was 40 degrees, and it was 37 down there. (I suppose I could've just disconnected the thermostat, but for some reason this didn't occur to me at the time.) But when I went to disconnect the wires from the circulator pump, I discovered that Little John had arranged it so that there was no room to get a screwdriver in to remove the screw keeping the pump's junction box closed. I ended up having to unbolt the pump from its plumbing in order to disconnect it (something that would've produced a flood had the pipes contained water), and this had me cursing the stoner plumber the whole time. It was almost as if he'd deliberately plumbed the boiler to make it impossible to work on, something I'd already discovered several months ago when just trying to tighten a nut to fix a leak that had developed in his masterpiece.
With that disconnected, I could go around turning off faucets in preparation to turning on the well pump. I couldn't tell whether I'd left the faucet for the upstairs tub open or closed, so I had Gretchen watch it while I turned on the well circuit breaker. What happened next did not make me happy: as the well pressurized the house's plumbing, a series of leaks sprang from in and around the boiler (that is, Little John's masterpiece). I immediately closed the valve connecting the pressure tank to the rest of the house so I could assess what was going on.
When I took the cover off the boiler (a compact super-efficient model made by Navien that has a touchscreen controller that looks like an iPhone), I saw water pouring out from multiple places. Clearly freezing temperatures had not been good for this system, and I soon figured out why: I'd totally forgotten about the cold water supply going into the boiler to supply its tankless water heater system. I could now see that that pipe hadn't been drained by any of the measures I'd taken when draining the system. This had lead to ice-expansion in a complex system of plastic fittings, motorized valves, and the heat exchanger itself. What a fucking disaster! I looked at it and all the water still pouring from random places and felt utterly defeated. What was I going to do? All of what I was looking had the look of proprietary technology one sets and forgets. Repairing it required understanding it, and the whole point of systems like this is that they're mysterious boxes that "just work."
But that's how any system of reasonable complexity looks at first inspection. It's also my initial reaction to someone else's code. But my whole life has been about not letting such things defeat me, so I bucked up and began doing my thing. I removed the screws securing a panel of electronics that was in my way, detached the iPhone-like touchscreen device, and zeroed in on the most spectacular of the leaks. It was where a plastic fitting entered the aluminum heat exchanger that actually makes the cold water hot. I soon determined that it was held in place by a single bolt that could be loosened with an allen wrench. When I loosened it enough, I could reach around behind it and feel that a rubber gasket had been pushed out of where it needed to be, probably by ice expansion. I pushed it back to where it seemed like it needed to be and tightened the bolt. Then I turned on the tap providing water to the system. That leak was fixed, but now several others I hadn't noticed became apparent. Had the problems all been rubber gaskets and washers pushed into unhelpful places by ice, I could've fixed the boiler today. But one of the motorized valves wasn't leaking from where a washer could be re-seated. When I removed it from the boiler, I saw a tiny hairline crack had appeared in its plastic body. This was clearly the result of ice expansion. That part would need to be replaced. But where was I going to get a replacement? I'd never seen such a component before, and it wasn't the sort of thing one can buy at a Home Depot.
Every technology has its own language of components, and Navien boilers are no different. They have various plastic fittings that serve the roles of elbows, T-fittings, valves, etc. In some ways, their language is easier to "speak" in than the solder or Pex-based languages I have become familiar with. For example, the Navien fittings are all sealed with O-rings and secured with metal clips, making it easy to take them apart and put them back together again without any tools in cramped spaces. Web searches didn't turn up many of the little meat-and-potato fittings used to do conventional routing of fluid, but they did turn up lots of vendors who happened to be selling the one part that freezing had apparently destroyed, a "mixer valve." The price on eBay was $100 for one of those, but I eventually found one for about $80.
I thought maybe I could defer worrying about the hot water functionality of the boiler and just get the heating functionality working. But when I tried to pressurize that system, other leaks became evident. It turned out that water above the circulator pumps had not drained when I drained the system, probably because they include one-way valves in their mechanisms. This meant that ice had pushed aside the rubber washer sealing the connection between the plumbing and the pump. This would've been an easy problem to fix, but here again I had to deal with Little John's scream-inducing placement of things, which made it almost impossible to loosen or tighten the nuts securing the pumps. After feeling for a time (as I described it to Gretchen) like the "Sorcerer's Apprentice," I eventually managed to do this and stop the leaks, but not without alternating many times between rage and despair. In the end, I had to abandon the effort because one large nut needing tightening would require a pipe wrench, and I was sure I'd taken the pipe wrench back to Hurley [though actually I hadn't].
I reported all of this aggravation to Gretchen in stages as it happened. Initially I was sure that we'd have to have Little John back to fix all the damage caused by freezing, something that surely would've been very expensive. But I'm good at breaking complex problems down into digestible bits, and a couple hours later it seemed all that was needed was a replacement mixer valve, something I could order and replace myself, no Little John necessary.
In addition to that massive headache, the cabin had other problems. It now seemed that the $10,000 (or was it $20,000?) lithium battery in the basement was not working at all, and I could not figure out how to make it start working again. Fortunately, unlike the freeze damage in the boiler, this wasn't my problem. Our solar installers have shown themselves to be a bunch of chuckleheads (a word I used a lot tonight) but it's on them to make it so that battery fucking works. It worked in January and it worked in February, but from what I can tell from checking remote data, it pretty much stopped working on or around the time the Russians invaded Ukraine, and it hasnt' worked since. I had Gretchen send a text to AJ, the head of the solar installation team, to complain about his masterpiece.
One further element of chuckleheadedness concerns our massive 1000 gallon propane tank, which we had the propane company refill in late February (to the tune of about $900). I'd triggered that refill when I noticed that the gauge on the tank was showing it to be nearly empty back in late January. But when I checked that gauge this evening after nearly a month of nearly zero propane use, I saw that it was still showing that the tank was nearly empty. There are only a few explanations for this. Either the tank has a terrible leak (which one would probably be able to hear if it were that bad) or the valve doesn't work at all. But why would we be given a tank with a useless valve? And if the valve doesn't work, how can we be sure our propane company actually put any propane in it when they claimed they did back in late Februrary? It all seems very shady and/or chuckleheaded. The company supplying our propane is Ferrell Gas by the way, and I do not recommend them.
One good bit of news came this evening when, in an exchange with one of the main owners of Ruby & Quiri, Gretchen was told that she could, if she wanted to, keep our loaner couch. Gretchen thinks the couch "ugly," mostly because of the silver-headed nails reinforcing its upholstery, and she thinks it "smells like poverty." But she agrees it's very comfortable (she would end up sleeping on it tonight). So the plan is to eventually move it up to the upstairs bedroom, the only space where we have the room for such a monstrosity. In its place will go a beautiful orange couch that is currently up against the south wall of the great room. But it's heavy, and not something we want to be moving all by ourselves.
The jagged line in the plastic of this Navien mixing valve is the damage from ice expansion. The thin less-jagged line between the "i" and the "e" in the Navien logo is probably a cat hair.
For linking purposes this article's URL is:feedback
previous | next