<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Hound Hill Homestead]]></title><description><![CDATA[Hound Hill Homestead]]></description><link>https://houndhillhomestead.com/</link><image><url>https://houndhillhomestead.com/favicon.png</url><title>Hound Hill Homestead</title><link>https://houndhillhomestead.com/</link></image><generator>Ghost 5.79</generator><lastBuildDate>Thu, 04 Jun 2026 05:59:44 GMT</lastBuildDate><atom:link href="https://houndhillhomestead.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves]]></title><description><![CDATA[<p>Last year, we planted a couple of small raspberry and blueberry plants. We didn&apos;t do much to maintain either patch and none of the plants did very well. This year, we were determined to do better. We started off re-clearing around the existing plants that survived, laid down</p>]]></description><link>https://houndhillhomestead.com/off-grid-drip-irrigation/</link><guid isPermaLink="false">6a1acd60a1e0a1033c180efb</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sat, 30 May 2026 14:16:49 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/05/drawio_irrigation_export-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/05/drawio_irrigation_export-1.jpg" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves"><p>Last year, we planted a couple of small raspberry and blueberry plants. We didn&apos;t do much to maintain either patch and none of the plants did very well. This year, we were determined to do better. We started off re-clearing around the existing plants that survived, laid down geotextile fabric, and chipped some brush to lay on top. We picked up and planted ~25 strawberry plants, ~25 raspberry bushes, and ~10 blueberry bushes, spread across two patches. We bought T posts, drove them with the tractor bucket, and hung some woven wire fence (that we found in the woods - benefit of living on old farm) around both patches to keep chickens and deer out.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/strawberry-patch-2.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/strawberry-patch-2.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/strawberry-patch-2.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/strawberry-patch-2.jpg 1600w, https://houndhillhomestead.com/content/images/2026/05/strawberry-patch-2.jpg 2048w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Strawberry patch going in</span></figcaption></figure><p>With the perimeter secured, the next important thing to figure out was irrigation. We are on a well and have a deep well pump - I hated the idea of stressing it to water both patches. To the right of the upper patch, shown above, is a 24&quot; culvert that runs beneath our entire backyard. 2 large ravines dump into the inlet and it flows in all but the absolute worst of droughts (we are still in a pretty significant drought at the moment and have steady flow). I picked up a drinking-water-safe IBC tote a few years ago to use as an irrigation holding tank - I just had to figure out a way to fill it. </p><p>For water sources, I had both the culvert outlet and an old dug well right next to the fruit patches. There&apos;s no power readily available within 100ft of the fruit patch - I have a small electric water transfer pump and briefly considered trenching some underground feeder out and automating that somehow, but I really wanted to keep this system as passive as possible.  After some research, I came across <a href="https://amzn.to/4uFmnNg?ref=houndhillhomestead.com">hydraulic ram pumps</a>. These power-free pumps are a popular way to pump water off-grid - they take in a large volume of flowing water with some head pressure and output a smaller volume of water at a much higher head pressure, effectively allowing you to pump water 7 feet vertically for every 1 foot of head pressure on the inlet side. Pulling from the stream, I only had to lift the water maybe ~15 feet to get into the top of the IBC tote, so I figured this would work out great. </p><p>Rather than buy one, I built one with off the shelf components from Home Depot. I largely followed the components of the <a href="https://landtohousestore.com/products/diy-ram-pump-kits?variant=40434026381399&amp;ref=houndhillhomestead.com">Small DIY kit from Land to House</a>. I used 3/4 check valves and piping, with a ~2 foot 2&quot; PVC pipe as the pressure tank. The first check valve (brass) is installed upside down, with the second in-line PVC check valve installed in the normal orientation of flow. For the drive pipe, I ran ~90 feet of 3/4&quot; schedule 40 PVC up through the existing culvert, connecting it to the inlet of the ram pump on the low side There&apos;s probably 10 feet of head through the drive pipe. At the top side of the culvert/drive pipe, I used 2&quot; PVC with holes drilled in it and aluminum screen wrapped around, attached with zip ties, as an intake. I dug out a low spot and dammed up the culvert a bit with some large rocks to keep the PVC inlet submerged.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/inlet_ram_pump-2.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/inlet_ram_pump-2.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/inlet_ram_pump-2.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/inlet_ram_pump-2.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/inlet_ram_pump-2.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ram pump inlet, submerged in front of culvert opening</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/ezgif-2b534f63b580d0aa.gif" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="600" height="1066" srcset="https://houndhillhomestead.com/content/images/2026/05/ezgif-2b534f63b580d0aa.gif 600w"><figcaption><span style="white-space: pre-wrap;">Ram pump running at outlet of culvert</span></figcaption></figure><p>I attached some 3/4&quot; poly water pipe to the outlet of the ram pump and ran it up to the top of the IBC tote. I initially had issues keeping the ram pump running - I primed and primed (by forcing the brass check valve down by hand) but it wouldn&apos;t keep running. I ended up having to choke the outlet valve way back - the 15 or so feet (vertically) I was pumping up to the IBC tote wasn&apos;t providing enough back pressure.  With the outlet valve almost entirely shut, it ran great. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/ram_pump_and_tote.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/ram_pump_and_tote.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/ram_pump_and_tote.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/ram_pump_and_tote.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/ram_pump_and_tote.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ram pump feeding IBC tote.</span></figcaption></figure><p>To get a little more head pressure, I lifted the tank onto my old dug well casing. I bought a <a href="https://amzn.to/3SaB2BD?ref=houndhillhomestead.com">black tank cover</a> to keep sunlight out and reduce algae growth. I have yet to reduce the length of my 3/4&quot; poly pipe or come up with a good way to permanently affix the feed pipe to the IBC tote - for now it is just wedged through the tank cap. When the tank fills, the ram pump automatically stops running. When I draw it down, I&apos;ve had to go start the ram pump manually by pressing the check valve flapper down a few times. I believe I can setup a siphon system to automatically start the ram pump but have yet to implement that - this has worked well so far. </p><p>To get water out of the IBC tote, I bought a <a href="https://amzn.to/3SaB2BD?ref=houndhillhomestead.com">cam-lock IBC tote adapter</a>. This attaches to the standard cam-lock outlet of the IBC tote and provides a male hose thread fitting. We attached a long hose and hand-watered the patch for a few weeks - this worked great. There was enough pressure to water the upper patch without a nozzle at the upper patch, and plenty of pressure to water the lower patch with a nozzle (I&apos;d guess 30psi - it&apos;s a steep drop to the lower raspberry patch). </p><p>The next step was setting up drip irrigation. I ran an extensive drip setup in SC in our raised beds - it uses minimal water and delivers the water directly to the root of the plants. From <a href="https://www.dripdepot.com/?ref=houndhillhomestead.com">DripDepot</a>, a vendor I&apos;d used in the past, I ordered emitters, 1/2&quot; feed line, 1/4&quot; emitter line, and adjustable flow, low pressure emitters. For the top patch, I ordered a simple filter, and for the bottom patch I ordered a 13psi pressure regulator. I also bought various connectors, both to go from standard hose thread to the poly pipe and to make turns in both the big feeder pipe and the small drip emitter feed lines themselves. Each patch took about an hour to pipe up - I ran half inch line in between pairs of rows and ran smaller line with emitters to each individual plant. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/strawberry_patch.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/strawberry_patch.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/strawberry_patch.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/strawberry_patch.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/strawberry_patch.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Strawberry patch drip irrigation installed</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/20260529_173846.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/20260529_173846.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/20260529_173846.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/20260529_173846.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/20260529_173846.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Raspberry patch drip irrigation lines run and feeding plants - still needs wood chips</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/drip-emitter.gif" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="576" height="1024"><figcaption><span style="white-space: pre-wrap;">Drip emitter up close - I&apos;ll likely dial these flows back a bit as we get familiar with how much water the plants need</span></figcaption></figure><p>I tested both drip systems connected directly to the cam-lock IBC tote adapter and both systems worked well. The last step was to fully automate drawing from the tote. In my previous raised bed drip system, I used an ESP32 flashed with ESPhome and an external relay board + 24VAC transformer to run off the shelf <a href="https://amzn.to/3RHfoow?ref=houndhillhomestead.com">Orbit sprinkler </a>valves, with the schedule all setup and controlled by Home Assistant. When I originally set that up, I didn&apos;t think the valves worked, as I couldn&apos;t get them to open while I was bench testing. Come to find out, all the solenoid valves require pressure on the feed side to reliably open and close - when I installed them off my hose spigot, they worked great. We were on town water and I had plenty of pressure there, but I didn&apos;t have that luxury here. Furthermore, I didn&apos;t have any local source of power to drive 24VAC to the sprinkler valves - the orbit valves were out of contention. </p><p>Orbit makes some simple timers that are battery powered and may have worked, but most of them looked like solenoid valves too and I was hell bent on having it all tied into home assistant. I have about every wireless communication protocol one could think of on the property, with sensors integrated over 433/915mhz RF, zigbee, wifi, etc. I found a cheap<a href="https://www.amazon.com/SONOFF-Controller-Compatible-Irrigation-SWV-NH/dp/B0D5B8S8N8/ref=sr_1_1?crid=MGFA4QB1F54L&amp;dib=eyJ2IjoiMSJ9.M7jGksVQKVu-F2AKL-rUfZyJfyPXxhCyHS5_Obh7erYAhbJHkFmreG7ePJKw9g12t_0mr2lgH4XiPoe7OnKKfgFsxoG0BjjHl9K9M8QM6JOzyHtGUv_dZ9Jdkam5_cnB0bHwaPvDTtguSjzJHGAyrvf5UQnQYGs8NubfUYTW1CbSJbCw8czHdghnEovR4wljYwwkcIYKZHcrwqdPrFZlUhJvafFZarz6ugM48JprQFo0QazfzBXztlFIdejYrmbh_E_qeWhbCIS-VJZPNOGbDlBtTQsitZH7_w3EZnZVEaE.afxGv4QW7kWkeOknTxT2vmkQrrPH5Oaj-dK5YY6nBPQ&amp;dib_tag=se&amp;keywords=sonoff+irrigation+valve&amp;qid=1780148256&amp;sprefix=sonoff+irrigati%2Caps%2C271&amp;sr=8-1&amp;ref=houndhillhomestead.com"> sonoff zigbee valve</a> that looked promising, but it also was solenoid style and appeared to require more pressure than I had available from the tote. Finally, I stumbled upon the <a href="https://amzn.to/4dRULxb?ref=houndhillhomestead.com">Aqara T1 Zigbee valve controller</a>. This unit mounts on any standard quarter turn or butterfly valve and turns the handle, eliminating the feed pressure requirement - it&apos;s battery powered and talks zigbee. I have a large zigbee network (many hue bulbs, contact sensors, etc) and figured I&apos;d have have enough signal range to control them from the house.</p><p>I purchased 2 of them and got to work building a manifold that would accept standard hose fittings for the inlet and outlet to each fruit patch. I sourced all the components again at Home Depot, using 3/4&quot; black iron pipe nipples and quarter turn 3/4&quot; valves. I bought some standoffs so I could mount them to a board. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/valve_manifold.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/valve_manifold.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/valve_manifold.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/valve_manifold.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/valve_manifold.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Valve manifold built - standard hose threads on inlet and both outlets</span></figcaption></figure><p>Unfortunately, the Aqara valve turners are not waterproof, so I built a small house for them with some spare materials I had hanging around. I probably could&apos;ve gotten away with a plastic box or something less elaborate but I had leftover wood/shingles from many other projects. I mounted the manifold to the floor of the valve house and installed both Aqara units - they turned the valves with ease despite the valves being rather stiff.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/valve_house_installed.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/valve_house_installed.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/valve_house_installed.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/valve_house_installed.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/valve_house_installed.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Manifold and aqara valves in valve house</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/ibc_tote_and_valvehouse.jpg" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/ibc_tote_and_valvehouse.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/ibc_tote_and_valvehouse.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/ibc_tote_and_valvehouse.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/ibc_tote_and_valvehouse.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Valve house and IBC tote - outlets connected to drip irrigation systems</span></figcaption></figure><p>I test fired the valves over my zigbee network via home assistant and the signal reached - both valves turned a few seconds after the command was issued. I purchased a couple of<a href="https://amzn.to/43BfNeP?ref=houndhillhomestead.com"> ecowitt soil moisture sensors</a> to get real time feedback on soil conditions - I&apos;ve got 3 of them in house plants inside. I&apos;m not sure if the 915mhz sensor will make it to the ecowitt hub in my basement from here - I&apos;ve yet to receive an update from either sensor. If those don&apos;t end up working, I will probably pivot to a zigbee solution and repurpose the 915mhz sensors. </p><p>For automations, I&apos;ve setup a simple water the plants for X period of time if it hasn&apos;t rained today. This will limp us along for the time being until I get accurate soil conditions from a sensor. I&apos;m using an <a href="https://amzn.to/43BfNeP?ref=houndhillhomestead.com">ecowitt wittboy</a> as a weather station to determine if it&apos;s rained - it provides light levels, wind speed, precipitation amounts, etc. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/05/image-1.png" class="kg-image" alt="Zero-Power Automated Drip Irrigation: Ram Pumps and Zigbee valves" loading="lazy" width="2000" height="752" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/05/image-1.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/05/image-1.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/05/image-1.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/05/image-1.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Simple home assistant automation to water plants</span></figcaption></figure><p>After we get the drip emitters dialed back to slower flow rates and get a feel for soil moisture in general, I&apos;ll probably greatly extend these run times. There are some more elaborate integrations, like <a href="https://www.home-assistant.io/integrations/plant/?ref=houndhillhomestead.com">plant monitor</a>, that I may setup in the future once we have soil moisture feedback working reliably.</p><p>Once I figure out a way to auto-start the ram pump (likely a siphon mechanism), we will have an entirely hands off, home assistant friendly way to keep our fruit patches optimally watered. We planted a number of fruit trees around this same area that I will likely tie into the drip system long-term. I&apos;d like to acquire a couple more totes and build a bigger water reserve to ride through even the worst of droughts - this would also let me stack the totes and drop the one tote I have sitting on top of the well casing down to ground level, which would be far less sketchy. </p>]]></content:encoded></item><item><title><![CDATA[Budget Mitsubishi HyperHeat WiFi Controllers]]></title><description><![CDATA[<p>My Dad recently had a couple of M-Series Mitsubishi H2i Hyperheat minisplits installed. He had an existing one compressor, two indoor head system he&apos;s been heating with for years (one in living room on main floor and one in basement in family room). With the current tax incentives</p>]]></description><link>https://houndhillhomestead.com/budget-mitsubishi-hyperheat-wifi-controllers/</link><guid isPermaLink="false">697f5436cb5c0a034824ecec</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Thu, 05 Feb 2026 12:32:03 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/02/minisplitconnected.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/02/minisplitconnected.jpg" alt="Budget Mitsubishi HyperHeat WiFi Controllers"><p>My Dad recently had a couple of M-Series Mitsubishi H2i Hyperheat minisplits installed. He had an existing one compressor, two indoor head system he&apos;s been heating with for years (one in living room on main floor and one in basement in family room). With the current tax incentives and Efficiency Maine incentives (plus some old stock R410A units from his supplier rather than the new R32/R454B models) he got the hyperheats installed for less than I paid for my Gree Sapphire units alone (I installed them myself). He filled in the rest of the house with a 9K head + compressor for a bedroom on the main floor and a 12K head + compressor in an upstairs bedroom. </p><p>The gree and mitsubishi hyperheats are both high performance units capable of providing heat year round, even in the frigid Maine winters (both units are rated to heat relatively efficiently down to -20F or so). Comparing apples to apples, the 12K units have very similar rated specifications. I pulled all of this data from the NEEP database: <a href="https://ashp.neep.org/?ref=houndhillhomestead.com#!/product/25895/7/25000/95/7500/0///0">Mitsubishi H2I.</a> <a href="https://ashp.neep.org/?ref=houndhillhomestead.com#!/product/25406/7/25000/95/7500/0///0">Gree Sapphire.</a></p>
<!--kg-card-begin: html-->
<table>
<tbody>
<tr style="height: 23px;">
<td style="height: 23px;">&#xA0;</td>
<td style="height: 23px;">&#xA0;Mitsubishi 12k H2i</td>
<td style="height: 23px;">&#xA0;Gree Sapphire 12k</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px;">HSPF/HSPF2</td>
<td style="height: 23px;">&#xA0;12.5</td>
<td style="height: 23px;">&#xA0;14.0</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px;">SEER/EER</td>
<td style="height: 23px;">&#xA0;26.1/13.8</td>
<td style="height: 23px;">&#xA0;30.5/15.3</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px;">COP at min output 47F</td>
<td style="height: 23px;">&#xA0;3.87</td>
<td style="height: 23px;">&#xA0;5.42</td>
</tr>
<tr style="height: 23.5px;">
<td style="height: 23.5px;">COP at min output 5F</td>
<td style="height: 23.5px;">&#xA0;2.83</td>
<td style="height: 23.5px;">&#xA0;4.23</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px;">
<p>COP at max output 47F</p>
</td>
<td style="height: 23px;">&#xA0;2.68</td>
<td style="height: 23px;">&#xA0;2.93</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px;">
<p>COP at min output 5F</p>
</td>
<td style="height: 23px;">2.21</td>
<td style="height: 23px;">1.91</td>
</tr>
</tbody>
</table>
<!-- DivTable.com -->
<!--kg-card-end: html-->
<p>The Gree units appear to be a little more efficient at moderate temperatures and the Mitsubishi holds higher COPs down at lower temperatures. Both are excellent and I&apos;d imagine averaged over a winter, provide nearly identical performance. </p><p>Both units come with IR remotes to control them. The Gree comes with an on-board wireless controller. It&apos;s a little finicky and the OEM Gree App is just passable, but there is a home assistant integration and after<a href="https://houndhillhomestead.com/first-minisplit-install/"> initial configuration</a>, I&apos;ve had virtually no issues controlling my 4 units. The integration even allows for using external home assistant-provided temperature sensors, which can be helpful in certain layouts where the on board temperature sensor doesn&apos;t accurately represent the room&apos;s temperature.</p><p>Rather unbelievably for 2026, the Mitsubishi units don&apos;t come with any form of smart control out of the box. There is an official<a href="https://amzn.to/45GK0L9?ref=houndhillhomestead.com"> Mitsubishi WiFi interface module </a>you can buy, but they are nearly $200/per. Furthermore, the <a href="https://www.reddit.com/r/heatpumps/comments/1dupvga/mitsubishi_heat_pump_kumo_cloud_is_insanely_bad/?ref=houndhillhomestead.com">Kumo cloud app gets awful ratings</a>, despite Mitsubishi seemingly having a robust under-the-hood unit control protocol. My Dad has been remotely controlling his two existing units for years via <a href="https://amzn.to/4keMB4U?ref=houndhillhomestead.com">Sensibo Sky IR blasters</a>. These have been reliable, but are expensive at $100/per and don&apos;t provide feedback of the actual run state of the unit (although he&apos;s never had an issue with commands making it to the minisplits). I set him up with home assistant using an RPI4 I had hanging around a few years back. The <a href="https://www.home-assistant.io/integrations/sensibo/?ref=houndhillhomestead.com">Sensibo integration</a> has worked quite well.</p><p>I set out to do something better (and cheaper) this time around. I found this great ESPHome project, <a href="https://github.com/echavet/MitsubishiCN105ESPHome?ref=houndhillhomestead.com">MitsubishiCN105ESPHome</a>. These guys decoded the Mitsubishi serial protocol typically used for external hard wired remotes (and also used for the OEM wifi module) via the CN105 connector on the control board and built an ESPHome project that can be run on ESP8266/ESP32 boards.</p><p>To build this, I needed a couple of components. I bought a<a href="https://www.aliexpress.us/item/3256802718583041.html?ref=houndhillhomestead.com"> CN105 to dupont connector from Aliexpress</a>. This connects to the Mitsubishi CN105 port on the minisplit board and has standard dupont connectors on the other side to connect to standard pins. For the dev board, I had some <a href="https://amzn.to/45EXCqb?ref=houndhillhomestead.com">Wemos D1 minis</a> hanging around from an old project and opted to use them. I read in the github comments some people had issues with certain D1 mini clones and voltage regulation, but I&apos;ve had good luck with these particular boards in other projects and decided to give them a shot. Being small, I figured I could sneak it in the minisplit housing somewhere. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20251227_140645.jpg" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20251227_140645.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20251227_140645.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20251227_140645.jpg 1600w, https://houndhillhomestead.com/content/images/2026/02/20251227_140645.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">First unit - pins soldered on board and cable hooked up</span></figcaption></figure><p>I 3d printed a <a href="https://www.thingiverse.com/thing:4600198?ref=houndhillhomestead.com">case I found on thingiverse</a> that left the pins exposed such that I could connect the dupont connectors. The CN105 connector has +12V, +5V, ground, TX and RX. +12V is unused, +5V and 0V power the esp8266. TX on the dev board goes to RX on the CN105 and RX on the dev board goes to TX on the CN105. The below image is from the &quot;<a href="https://github.com/SwiCago/HeatPump/blob/master/README.md?ref=houndhillhomestead.com#demo-circuit">demo board</a>&quot; section of the readme. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://github.com/SwiCago/HeatPump/raw/master/CN105_ESP8266.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="2288" height="548"><figcaption><span style="white-space: pre-wrap;">Demo board suggested layout</span></figcaption></figure><p>The ESP8266 IO pins are officially rated for 3.3V, but unofficially they handle 5V just fine. The LM3940 and resistors/capacitors are for converting between 5V (on the Mitsubishi side) and 3.3V on the ESP8266 side. I found <a href="https://chrdavis.github.io/hacking-a-mitsubishi-heat-pump-Part-1/?ref=houndhillhomestead.com">a couple of other projects</a> that neglected all of this and just hooked TX/RX up directly and that&apos;s what I opted to do. I&apos;ve had good luck interfacing with many 5V boards without voltage regulation. This greatly simplifies the circuit as the CN105 breakout cable can be directly attached to the ESP8266 IO pins. </p><p>In the other write ups I found, I couldn&apos;t find any good pictures of the orientation of the CN105 connector. That is, where pin 1 is (left or right looking from top or bottom). Before attaching to the minisplit, I probed with a multimeter and identified which pin was 12V. An extremely explicit layout of the order of those pins will be my small contribution. With the clip on the top of the connector facing upwards, pin 1 is on the left as depicted below.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/image.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="1378" height="1152" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image.png 1000w, https://houndhillhomestead.com/content/images/2026/02/image.png 1378w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Pinout - cabling color matches the CN105 breakout cables I linked above and that are pictured below</span></figcaption></figure><p></p><p>Next, I programmed both devices on my own home assistant/esphome instance. I pulled one of the basic configs from the aforementioned github link and tweaked it for fahrenheit:</p><pre><code>substitutions:
  name: Dad&apos;s Upstairs Minisplit
  friendly_name: Dad&apos;s Upstairs Minisplit

esphome:
  name: dadsmitsu
  friendly_name: DadsMitsu

esp8266:
  board: d1_mini

# Enable logging
logger:
  baud_rate: 0
# Enable Home Assistant API

api:
  encryption:
    key: &quot;#####&quot;
  services:
    - service: set_remote_temperature
      variables:
        temperature: float
      then:
# Select between the C version and the F version
# Uncomment just ONE of the below lines. The top receives the temperature value in C,
# the bottom receives the value in F, converting to C here.
#        - lambda: &apos;id(hp).set_remote_temperature(temperature);&apos;
        - lambda: &apos;id(hp).set_remote_temperature((temperature - 32.0) * (5.0 / 9.0));&apos;
    - service: use_internal_temperature
      then:
        - lambda: &apos;id(hp).set_remote_temperature(0);&apos;


ota:
  - platform: esphome
    password: &quot;####&quot;

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: &quot;Dadsmitsu Fallback Hotspot&quot;
    password: &quot;####&quot;


uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: GPIO1
  rx_pin: GPIO3

web_server:
  port: 80


external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

climate:
  - platform: cn105
    id: hp
    name: &quot;Dad&apos;s Upstairs Minisplit&quot;
    icon: mdi:heat-pump
    visual:
      min_temperature: 15
      max_temperature: 31
      temperature_step:
        target_temperature: 1
        current_temperature: 0.1
    vertical_vane_select:
      name: ${name} Vertical Vane
    remote_temperature_timeout: 30min
    debounce_delay : 500ms
    update_interval: 4s
    compressor_frequency_sensor:
      name: Compressor Frequency
      entity_category: diagnostic
      disabled_by_default: true
    stage_sensor:
      name: Stage
      # use_as_operating_fallback: false     # set to true for 2-stage systems or if activity indicator is unreliable
      entity_category: diagnostic
      disabled_by_default: true
    sub_mode_sensor:
      name: Sub Mode
      entity_category: diagnostic
      disabled_by_default: true
    auto_sub_mode_sensor:
      name: Auto Sub Mode
      entity_category: diagnostic
      disabled_by_default: true
    input_power_sensor:
      name: Input Power
      disabled_by_default: true

sensor:
  - platform: uptime
    name: Uptime</code></pre><p>Finally, it was time to install and test. I first plugged the two D1 minis into my Dad&apos;s raspberry pi and copied the code over/adopted them via ESPHome and connected it to his wireless network. </p><p>I popped the top cover of the minisplit off (lifts up and then pulls out) and took out 3 screws. The right plastic cover can then be completely removed. <a href="https://www.youtube.com/watch?v=2e6by0tV8h4&amp;ref=houndhillhomestead.com">This video </a>covers disassembling everything, but I only had to pull the right side. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/image-1.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="1176" height="714" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image-1.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image-1.png 1000w, https://houndhillhomestead.com/content/images/2026/02/image-1.png 1176w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">rough screw locations marked in red</span></figcaption></figure><p>Once the plastic is off, there&apos;s one more screw holding on a metal cover that needs to be removed. Removing the metal cover exposes the control board and the CN105 connector.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/02/image-3.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="1214" height="1156" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image-3.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image-3.png 1000w, https://houndhillhomestead.com/content/images/2026/02/image-3.png 1214w" sizes="(min-width: 720px) 720px"></figure><p></p><p>The CN105 connector is towards the bottom left side of the board. On the 9K BTU indoor head unit, it was red and on the 12k BTU unit, it was white. Both had &quot;CN105&quot; printed on the PCB above the port. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/image-4.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="1804" height="1070" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image-4.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image-4.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/image-4.png 1600w, https://houndhillhomestead.com/content/images/2026/02/image-4.png 1804w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">9K indoor head unit with red connector</span></figcaption></figure><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20251230_152432.jpg" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20251230_152432.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20251230_152432.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20251230_152432.jpg 1600w, https://houndhillhomestead.com/content/images/2026/02/20251230_152432.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">12K BTU head unit with white connector - CN105 connected and pinout depicted</span></figcaption></figure><p>I popped the plastic cover on the bottom right corner of the minisplit off and snuck the dev board in next to the lineset. I routed the cables out beneath the metal cover following the existing cables. The CN105 jumper cable was long enough that I didn&apos;t have to extend it with additional dupont cables.</p><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260201_114119.jpg" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260201_114119.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260201_114119.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260201_114119.jpg 1600w, https://houndhillhomestead.com/content/images/2026/02/20260201_114119.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">controller hanging next to lineset - plastic cover popped off and metal control board cover re-installed</span></figcaption></figure><p>With the unit physically installed, we tested basic functionality before closing up the minisplit. I saw valid serial data via the esphome device logs (acquired wirelessly). </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/02/image-5.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="2000" height="1129" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image-5.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image-5.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/image-5.png 1600w, https://houndhillhomestead.com/content/images/2026/02/image-5.png 2254w" sizes="(min-width: 720px) 720px"></figure><p>We closed the unit back up and then gave it a full test. The basic climate entity looked good in home assistant. We fired it up and tested the fan speeds, changing temperature set point, power on/off, and changing the horizontal/vertical vanes. Everything worked, so we went ahead and installed the other and tested. That one functioned equally well. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/image-6.png" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="1158" height="1196" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/image-6.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/image-6.png 1000w, https://houndhillhomestead.com/content/images/2026/02/image-6.png 1158w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Climate entity for upstairs minisplit - we renamed it once in home assistant</span></figcaption></figure><p>My dad&apos;s home assistant instance has lights, TVs, heat pump hot water heater, and the existing sensibo climate entities. We&apos;d been using the basic built in climate card, but it is huge and takes up a lot of space. With 4 minisplits now exposed to home assistant, I downloaded the mushroom card package and swapped the 2 sensibos + 2 ESPHome powered minisplits over to use the mushroom climate card. This is more compact and reduces scrolling on the main dashboard screen.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/IMG_20260205_071527_513.jpg" class="kg-image" alt="Budget Mitsubishi HyperHeat WiFi Controllers" loading="lazy" width="576" height="1280"><figcaption><span style="white-space: pre-wrap;">new climate entities slapped on his main dashboard</span></figcaption></figure><p>The ESPHome units have been in for about a week so far and haven&apos;t had any issues. I&apos;ll probably add two more ESPHome devices to his existing two units to augment/replace the sensibo IR units. </p><p>The exact <a href="https://amzn.to/4qh3UUg?ref=houndhillhomestead.com">Wemos D1 mini clones</a> I used were $15 for a pack of 5 on amazon, or $3/per unit. A 5 pack of the <a href="https://www.aliexpress.us/item/3256802718583041.html?ref=houndhillhomestead.com">CN105 to dupont cables</a> were $5.55 + $4 shipping, so about $2/per unit. For less than $5, we were able to breathe smarts into these otherwise great Mitsubishi units. Compared to the OEM wireless modules, we saved $390 and compared to adding two more sensibos, $190. When I get around to doing the other two minisplits, that will be a savings of nearly $800 across the 4 total units, or nearly $400 going the sensibo route, with more functionality to boot. </p>]]></content:encoded></item><item><title><![CDATA[Building a Rabbit Hutch]]></title><description><![CDATA[<p>We recently took in a friend&apos;s farm rabbit. He&apos;d been living in a barn alongside donkeys and was chewing on the donkey&apos;s legs, so he had to go. He may eventually live in our barn/garage, but that&apos;s still just a frost</p>]]></description><link>https://houndhillhomestead.com/rabbit-hutch/</link><guid isPermaLink="false">697f4432cb5c0a034824eb54</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sun, 01 Feb 2026 13:22:01 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/02/20251214_184857-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/02/20251214_184857-1.jpg" alt="Building a Rabbit Hutch"><p>We recently took in a friend&apos;s farm rabbit. He&apos;d been living in a barn alongside donkeys and was chewing on the donkey&apos;s legs, so he had to go. He may eventually live in our barn/garage, but that&apos;s still just a frost wall at this point. For now, we chose to co-house him with our birds. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260118_174757.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260118_174757.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260118_174757.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260118_174757.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260118_174757.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The donkey terrorist</span></figcaption></figure><p>We have two coops - a <a href="https://houndhillhomestead.com/coop-improvements/">4x8 + nesting boxes goose coop and a 8x8 chicken coop</a>. Both have water, power, fiber, and wireless internet courtesy of a trench I dug through the back yard a few years ago. Since then, I&apos;ve added exterior and interior lighting, smart switches, automatic doors, cameras, trim, and gutters. Initially, we considered walling off a nesting box or two in the goose coop and making a small opening only he could go in - this presented a couple of issues. The geese can be territorial and the nesting boxes would be a PITA to routinely clean. Ultimately, we decided to build a raised hutch in the larger coop. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/02/20260119_161112.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260119_161112.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260119_161112.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260119_161112.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260119_161112.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>I picked up some 2x2 and 2x3 lumber from home depot and built a small 32&quot;x18&quot; box. I used some screws and washers to affix 1/2&quot; hardware cloth all the way around. From what I&apos;ve read, ventilation is extremely important with rabbits as their respiratory systems are sensitive and they don&apos;t tolerate heat very well (not much of an issue in the winter, but he&apos;ll likely spend at least one summer out here).  On the respiratory front, rabbits also don&apos;t tolerate non-kiln-dried pine shavings very well. As the shavings off-gas, the phenols released can cause liver damage. In the large coop, we&apos;ve been using primarily sand as flooring, with some pine shavings for nesting boxes. We&apos;ll likely swap this out for another material, as the pine shavings we&apos;ve been buying from tractor supply are not guaranteed to be kiln dried.</p><p>We used some long structural screws to tie the hutch directly into two studs a couple of feet off the ground. I cut a basic OSB base for now but will likely swap out for some <a href="https://www.youtube.com/watch?v=ViQWETbLLyk&amp;ref=houndhillhomestead.com">14GA rabbit wire from Klubertanz </a>soon. The consensus is split on wire bottomed rabbit cages - I&apos;ve read lots of people using it on large scale rabbit farms without issue and others claiming it will tear up paws. In either case, you need relatively fine 14GA mesh (vinyl coated seems even better) which I couldn&apos;t procure locally, hence the short term OSB base. The advantage of a wire base is all of the rabbit waste will fall out and the chickens will take care of the rest - all but self cleaning. We&apos;re going to give it a shot and keep an eye on his paws - we can always swap back to a solid base. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260119_162500.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260119_162500.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260119_162500.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260119_162500.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260119_162500.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Rabbit settling in</span></figcaption></figure><p>We filled the box with hay and left the rabbit a few days to acclimate. It&apos;s been extremely cold out the past few weeks and fresh water nearly immediately freezes. To deal with this, we bought a <a href="https://amzn.to/4arqTaw?ref=houndhillhomestead.com">Farm Innovators heated rabbit water bottle</a>. This unit is designed to hang right on cage wire and holds a couple days worth of water. It has an extremely short (maybe 18&quot;) power cord, so I had to add an additional outlet near the rabbit hutch. We also added a <a href="https://amzn.to/46fOatv?ref=houndhillhomestead.com">grain and hay feeder</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260123_174701.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260123_174701.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260123_174701.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260123_174701.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260123_174701.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">New outlet and heated rabbit water bottle</span></figcaption></figure><p> Yesterday, I got around to finishing the rest. Using 2x4, 2x3, and 2x2s, I build a little ledge and an interlocking, hinged base + ramp. The ledge is a 2x4 with a 2x3 spiked on the front in an &quot;L&quot; shape. I used 2x2s and scrap T1-11 to construct the ramp. The top has a key way that matches the ledge. It securely rests on the ledge but is easy to remove for cleaning the coop. I wrapped the ramp in fake grass we had hanging around from an old project.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260131_163132.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260131_163132.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260131_163132.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260131_163132.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260131_163132.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ledge and ramp</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260131_163139.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260131_163139.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260131_163139.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260131_163139.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260131_163139.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Bottom of the landing and ramp - interlocking piece that matches the ledge</span></figcaption></figure><p>The landing sits flush with the doorway of the hutch. The hinge ensures the ramp can change height as the coop base material changes depth throughout the year.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/20260131_163205-1.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/20260131_163205-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/20260131_163205-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/20260131_163205-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/20260131_163205-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ramp attached - see feeder on left side of hutch.</span></figcaption></figure><p>We cut the door opening in front of the ramp last night after the coop door was closed. Doesn&apos;t look like he has ventured out beyond the ramp landing yet.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/frigate.jpg" class="kg-image" alt="Building a Rabbit Hutch" loading="lazy" width="2000" height="1194" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/frigate.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/frigate.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/02/frigate.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/02/frigate.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Frigate live view from inside the coop</span></figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Automatic Closet Lighting]]></title><description><![CDATA[<p>We have a small closet off the kitchen/living room where we keep all of our dog food and pet supplies (the dogs all rush to the door when it&apos;s so much as looked at). As found, there was no lighting/power (or shelves, but I remedied that</p>]]></description><link>https://houndhillhomestead.com/simple-smart-closet-lighting/</link><guid isPermaLink="false">6972cdaacb5c0a034824ea82</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Fri, 23 Jan 2026 12:50:20 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/01/20260123_071943--2--1.gif" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/01/20260123_071943--2--1.gif" alt="Automatic Closet Lighting"><p>We have a small closet off the kitchen/living room where we keep all of our dog food and pet supplies (the dogs all rush to the door when it&apos;s so much as looked at). As found, there was no lighting/power (or shelves, but I remedied that with a couple of 2x10s and some brackets earlier this year).  With the short, dark days of winter it&apos;s hard to find anything in there - Brittany asked me to add a light. </p><p>I didn&apos;t have any easy way to install a light above. The area directly above is near the soffit, outside the knee walls of the <a href="https://houndhillhomestead.com/winter-project-finishing-attic/">room I built last winter</a>, covered in spray foam and sub floor. Fortunately, there was a 3 gang box with an outlet and some lighting circuits on the kitchen side of the shared wall. Last week, I installed a floating live edge shelf on this same wall, so I knew roughly where the studs were. I probed the closet side of the wall with a stud finder, and then a finish nail in a couple of locations in the closet, to make sure the stud bay was uninterrupted up to the area I planned to install the light. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/light.drawio.png" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="600" height="801" srcset="https://houndhillhomestead.com/content/images/2026/01/light.drawio.png 600w"><figcaption><span style="white-space: pre-wrap;">Basic plan</span></figcaption></figure><p>I marked the hole in the closet and used a hole saw to cut a round hole for an <a href="https://amzn.to/49BChjR?ref=houndhillhomestead.com">old work box</a>. The hole saw blew out the hole a little wider than I would&apos;ve liked in one spot but I plan to refinish this closet at some point anyway. I fished some romex up from the 3 gang box in the kitchen through the old work box, connecting it to a basic <a href="https://amzn.to/4b8WoXL?ref=houndhillhomestead.com">porcelain lamp socket with a pull chain</a>. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/20260118_171940.jpg" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/20260118_171940.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/20260118_171940.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/20260118_171940.jpg 1600w, https://houndhillhomestead.com/content/images/2026/01/20260118_171940.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Light installed - Closet wall needs some drywall work</span></figcaption></figure><p>This was probably enough to satisfy the initial request, but still far from ideal. We only tend to open this closet for a couple of seconds at a time (grab dog food, etc) and pulling the chain twice in itself doubles that time. This was a great excuse to buy some automation gear. </p><p>I filled the porcelain bulb holder with a <a href="https://amzn.to/4jXmAa3?ref=houndhillhomestead.com">phillips hue white bulb</a>, joining it to my existing zigbee network. I turned the bulb holder on with no further intention of turning it off locally. I figured a door contact sensor would be the best way to automate this - combined with some basic home assistant automations, I could have the light come on when the door opens and off when it closes. A few houses ago I used some wyze sense v1 contact sensors, which were great until their batteries got low and <a href="https://forums.wyze.com/t/wyze-door-window-sensor-v1/184630?ref=houndhillhomestead.com">they changed hardware IDs</a>. I did some research and settled on the more expensive but highly rated <a href="https://amzn.to/45VY834?ref=houndhillhomestead.com">Aqara Door and Window contact sensors.</a> </p><p>These sensors, like the hue bulb, talk zigbee. The heart of my zigbee network is a <a href="https://amzn.to/3Nz7Fqy?ref=houndhillhomestead.com">Sonoff USB zigbee hub</a> plugged directly into my home assistant proxmox host and passed through to the HAOS virtual machine. I joined them to my Zigbee2MQTT instance by first hitting &quot;permit all join&quot; on the home assistant add on and then holding down the single button on the sensor for 5s. The sensor popped up as joining and I renamed it for it&apos;s intended use. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/image-13.png" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="2000" height="761" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-13.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-13.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/image-13.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/image-13.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">New hue bulb and sensor</span></figcaption></figure><p>To keep things discrete and clean looking, I installed the contact sensor on the top inside corner of the door. I have casing all around both internally and externally so I had to mount the sensor and pickup sub-optimally. The documentation has them flat next to each other on an even plane, but the pickup is just a magnet and these particular units seem to have great range (rated at 22mm, or almost an inch in freedom units). I held them roughly in place and monitored the state in home assistant before attaching the adhesive.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/contactsensor.jpg" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/contactsensor.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/contactsensor.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/contactsensor.jpg 1600w, https://houndhillhomestead.com/content/images/2026/01/contactsensor.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><p></p><p>With all of the IO in place and talking to home assistant, I created two extremely simple automations turning the light on when the contact sensor state changes to open and the reverse, turning the light off when the contact sensor state changes to closed. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/image-14.png" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="2000" height="1156" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-14.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-14.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/image-14.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/image-14.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The simplest of automations</span></figcaption></figure><p>These Aqara units react and report back almost instantly, so fast in fact the light is on before I get the door 1/4 of the way open. I peaked under the bottom of the door to verify it was actually shutting off - also ridiculously fast as soon as the door is completely closed and the contact sensor is made up. I opted not to include the hue light entity anywhere on the home assistant GUI - when it stops working, that will be an excellent reminder to change the battery in contact sensor. I have a number of other hue products controlled through the same hub (mix of lights and hardwired hue downlights in new upstairs addition) and they have been bulletproof.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/20260123_071943--2-.gif" class="kg-image" alt="Automatic Closet Lighting" loading="lazy" width="400" height="225"></figure><p>I went ahead and added the two other sensors in the 3 pack I purchased to other closets - one to my bedroom closet bifold (placed the sensor on one bifold and the pickup on the other) and one in our master bath closet bifold. The primary automations (on/off with contact sensor) were near identical to the dog closet. The bedroom closet has a Wyze color bulb flashed with tasmota in the overhead fixture, so I&apos;m calling the light_on action. The  master bath fixture didn&apos;t have the wiring to support a traditional smart switch (and it&apos;s a large LED fixture without replaceable bulb, no smart bulb options), so I installed a <a href="https://amzn.to/4sY3QLJ?ref=houndhillhomestead.com">Shelly 1PM gen 4</a> in the fixture box. For that automation, I&apos;m calling the switch_on action. </p><p>In the master bathroom, I use an <a href="https://amzn.to/3Z0w7nf?ref=houndhillhomestead.com">Aqara mmwave radar sensor</a> to control lights/bathroom fan as described <a href="https://houndhillhomestead.com/bathroom-automation-with-the-aqara/">here</a>. I have a series of automations for each zone - overhead lights come on when you first walk in, vanity lights come on when you get near the sink, etc. I added some if/then components to the overhead lighting automations to account for the new closet door sensor. When you first walk in, if the closet door is open, the closet light comes on. When no presence is detected for 2 minutes, all lights shut off, including the closet light regardless of door state. Otherwise, the closet overhead light comes on/off with the door sensors as the other closets do. I think this combination will ensure we&apos;ll never touch the switch again. </p><figure class="kg-card kg-code-card"><pre><code>alias: Aqara Bathroom - Turn on overhead light when entering bathroom
description: &quot;&quot;
triggers:
  - entity_id:
      - binary_sensor.presence_sensor_fp2_0475_presence_sensor_4
    from: &quot;off&quot;
    to: &quot;on&quot;
    trigger: state
conditions: []
actions:
  - target:
      entity_id: switch.master_bath_left
    data: {}
    action: switch.turn_on
  - if:
      - condition: state
        entity_id: binary_sensor.master_bath_closet_door_contact_sensor_contact
        state:
          - &quot;on&quot;
    then:
      - action: switch.turn_on
        metadata: {}
        target:
          entity_id: switch.bedroom_fan_1
        data: {}
mode: single
</code></pre><figcaption><p dir="ltr"><span style="white-space: pre-wrap;">Overhead lighting automation with closet conditionally added</span></p></figcaption></figure><figure class="kg-card kg-code-card"><pre><code>alias: Shut off bathroom lights with no presence
description: &quot;&quot;
triggers:
  - entity_id:
      - binary_sensor.presence_sensor_fp2_0475_presence_sensor_3
      - binary_sensor.presence_sensor_fp2_0475_presence_sensor_4
    to: &quot;off&quot;
    for:
      hours: 0
      minutes: 5
      seconds: 0
    trigger: state
conditions:
  - condition: and
    conditions:
      - condition: state
        entity_id: binary_sensor.presence_sensor_fp2_0475_presence_sensor_3
        state: &quot;off&quot;
        for:
          hours: 0
          minutes: 1
          seconds: 0
      - condition: state
        entity_id: binary_sensor.presence_sensor_fp2_0475_presence_sensor_4
        state: &quot;off&quot;
        for:
          hours: 0
          minutes: 1
          seconds: 0
      - condition: state
        entity_id: binary_sensor.presence_sensor_fp2_0475_presence_sensor_2
        state: &quot;off&quot;
        for:
          hours: 0
          minutes: 1
          seconds: 0
actions:
  - target:
      entity_id:
        - switch.master_bath_left
    data: {}
    action: switch.turn_off
  - target:
      entity_id: light.master_bathroom_mirror
    data: {}
    action: light.turn_off
  - action: switch.turn_off
    metadata: {}
    target:
      entity_id: switch.shelly1g4_e4b06375108c
    data: {}
mode: single
</code></pre><figcaption><p dir="ltr"><span style="white-space: pre-wrap;">Shut it all off!</span></p></figcaption></figure>]]></content:encoded></item><item><title><![CDATA[Partial Solar Homelab]]></title><description><![CDATA[<p>Within the next couple of years, I plan to put a 20-25kW solar array out behind the house, enough to offset all of my electric consumption. Electricity here is ~0.25c/kWh and with heat pumps/oven/well, the ROI will be short. </p><p>In the mean time, one of my</p>]]></description><link>https://houndhillhomestead.com/partial-solar-homelab/</link><guid isPermaLink="false">696aeea3cb5c0a034824e93c</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sat, 17 Jan 2026 14:21:18 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/01/20251210_145748-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/01/20251210_145748-1.jpg" alt="Partial Solar Homelab"><p>Within the next couple of years, I plan to put a 20-25kW solar array out behind the house, enough to offset all of my electric consumption. Electricity here is ~0.25c/kWh and with heat pumps/oven/well, the ROI will be short. </p><p>In the mean time, one of my largest consumers is my homelab. What started off a couple of years ago, when we lived down south (with cheap electricity), as an old recycled server has grown to half of a 48U rack. I have a Fortinet powered network stack, two hosts (one of which is an AMD EPYC whitebox build with 100TB+ of intel optane fronted storage and tons of PCIE accessories), and a multitude of IOT gear. I host a fairly typical suite of homelab services including plex, home assistant, frigate nvr, and this website. The rack is on a dedicated circuit and idles around 500W. At current exorbitant CMP rates, this gear costs me about $3/day to run. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/image-7.png" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="2000" height="615" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-7.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-7.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/image-7.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/image-7.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Idling around 500W back in November</span></figcaption></figure><p>Last year, a relative gave me a couple of <a href="https://amzn.to/4r0ZjGB?ref=houndhillhomestead.com">ecoflow delta pros</a> and 8 400W bifacial solar panels. The ecoflows, marketed as &quot;solar generators&quot;, are pretty neat units - each one has 3.6kWH of lifePO4 storage on board, an inverter capable of 3600W continuous output, and an onboard solar MPPT that can accept 1600W of input. We&apos;ve used them camping a number of times, but I wanted to put at least one of them to work 24x7. Eventually, I plan to use both of them and a subset of the panels to power a large 30x48 greenhouse we purchased just before winter. </p><p>My homelab was the perfect target load to partially offset. It&apos;s relatively constant, predictable and fed by a UPS+PDU at the bottom of the rack, so I could plug it directly into the Delta Pro. It is programmable such that you can set battery thresholds below which to charge on AC + solar, and above which to charge on solar only. Some of the newer ecoflows have true UPS capability (10ms switchover), but the older Delta Pro does not. When it switches between battery and AC passthrough, there&apos;s a ~30ms blip, enough to cause issues with server power supplies. To get around this, I plugged an aging Liebert UPS in in front of the Delta Pro - this handles immediate switchover, while the Delta Pro provides extended runtime, like a much larger UPS. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/logical-diagram.jpg" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="1340" height="1102" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/logical-diagram.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/logical-diagram.jpg 1000w, https://houndhillhomestead.com/content/images/2026/01/logical-diagram.jpg 1340w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Logical layout</span></figcaption></figure><p>The solar panels were 400W Hyperion bifacial panels, rated at ~31V and ~13A a piece. The ecoflow has a maximum voltage cutoff of 150V and a maximum solar input current of 15A. The current is &quot;drawn&quot; by the unit and can be exceeded on the panel string, but voltage cannot. Above 150V will damage the internal MPPT. On paper, I could string 4 panels together in series to make 120V @ 13A. Panel voltages are rated at 25C, and panels gain significant voltage at the cold winter temperatures we experience here. I used the thermal coefficient to calculate Voc at -20F (about the coldest we ever see here) - it was nearly 40V per panel, putting me over the 150V threshold. I decided on a 3 panels in series setup for now, for 90-100V @ 13A maximum input (1300W max rated output).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/20251206_161024--1-.jpg" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/20251206_161024--1-.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/20251206_161024--1-.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/20251206_161024--1-.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/20251206_161024--1-.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Testing a frame - panel not permanently mounted. </span></figcaption></figure><p>Circling back to the greenhouse - with this being a temporary setup, I wanted to build something cheap and portable. I opted to recycle some pallets to build the solar ground mounts. I used 3 pallets and a pair of 2x4s per panel. I ripped off the first slats of all 3 panels and A framed them together, basically following <a href="https://www.youtube.com/watch?v=nDppT9Q4DlM&amp;ref=houndhillhomestead.com">this video</a>. It was important the spacing of the boards supporting the slats was relatively consistent between pallets so that they&apos;d line up. I used some scrap 2x4s as blocking between the boards at the top, offsetting one pallet to the left of the base pallet and the other to the right. Finally, I spiked it all together with a nail gun and added 6 foot 2x4 rails to the front to have a nice consistent surface to mount the panels. Ideal year-round panel angle is roughly your latitude, so I set everything to a 45ish degree angle. To mount the panels to the 2x4s, I used <a href="https://amzn.to/4bEXfzv?ref=houndhillhomestead.com">these cheap Z brackets</a>, 4 per solar panel at the pre-drilled mounting holes. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/20251210_145748.jpg" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/20251210_145748.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/20251210_145748.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/20251210_145748.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/20251210_145748.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">3 panels staged and wired up - conduit entrance on house. We sometimes see significant wind in Nor&apos;easters so I ballasted the pallet mounts with firewood after this picture was taken.</span></figcaption></figure><p>I picked up 100ft of <a href="https://amzn.to/4b0NPyd?ref=houndhillhomestead.com">10ga PV cable</a> and some <a href="https://amzn.to/3YK5SRY?ref=houndhillhomestead.com">MC4 connectors/crimper</a>. I punched a 2&quot; conduit hole in the wall leading to my basement (should be big enough to support cabling to my permanent PV setup) and wired the panels in series. Back at the ecoflow in the basement, I have an <a href="https://amzn.to/49AJfWp?ref=houndhillhomestead.com">XT60 to MC4</a> cable to attach the ecoflow to the standard MC4 connectors on the panel cables. I have yet to add an external fuse (the ecoflow has some level of protection near as I can tell), but I will soon. </p><p>With the basics in place, I plugged the ecoflow into my dedicated AC circuit, the rack UPS to the ecoflow, and the solar panel cables to the solar input. I configured it via the ecoflow app to charge to 50% on AC + solar, and above that use only solar. In practice, the unit&apos;s output has a deadband (so that it&apos;s not constantly swapping between AC passthrough and inverter when you&apos;re near 50%). At 50%, plugged into the wall, it will use AC passthrough to power loads and solar to charge the battery until it hits 60% charge, at which point it will stop AC passthrough, invert power from the battery to maintain the AC loads, and continue charging via solar. If solar input &lt; AC output, it will eventually cycle down to 50% and repeat this process. At peak sun, solar input will exceed my 500W load and continue maintaining the battery + the AC load. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/Screenshot_20251212_115256.jpg" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="1080" height="2340" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/Screenshot_20251212_115256.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/Screenshot_20251212_115256.jpg 1000w, https://houndhillhomestead.com/content/images/2026/01/Screenshot_20251212_115256.jpg 1080w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ecoflow app around noon showing solar input in excess of AC load the day after install</span></figcaption></figure><p>I got this setup around the shortest day of the year and have some trees blocking sun early in the morning (these will soon be destroyed by excavator to make room for larger PV array), so input is far from optimal. As the days lengthen and my time of production goes up (and the trees come down via excavator), I will likely lower the AC charge level on the unit to give me more headroom to charge via solar. I&apos;m also considering adding the other ecoflow unit into the mix with an additional 3 panels - I think in summer months, I could run the lab 24x7 this way.</p><p>To keep track of things, I integrated the ecoflow with home assistant via <a href="https://github.com/tolwi/hassio-ecoflow-cloud?ref=houndhillhomestead.com">this integration</a> and added it to my electricity overview card (bubble card with sub buttons). </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/image-8.png" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="720" height="146" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-8.png 600w, https://houndhillhomestead.com/content/images/2026/01/image-8.png 720w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Green sub button is daily kWH generated by the ecoflow + PV combination - clicking takes you to a page with detailed live consumption values by circuit</span></figcaption></figure><p>I leveraged some of the other sensors exposed by this integration to reconfigure home assistant&apos;s baked in energy dashboard. I setup the relationships of circuits to sensors (the ecoflow being a child entity of network rack circuit, which itself is a child circuit of my subpanel, all measured with a pair of <a href="https://amzn.to/49YQgQJ?ref=houndhillhomestead.com">Emporia Vues</a>).</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image-9.png" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="2000" height="542" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-9.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-9.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/image-9.png 1600w, https://houndhillhomestead.com/content/images/2026/01/image-9.png 2124w" sizes="(min-width: 720px) 720px"></figure><p>Sunny days have been a rare thing this winter, but we&apos;ve had a few for me to gauge system performance. On the sunniest of these short and cold winter days, the battery charges to 60% by about 10:30am and runs the the rack in its entirety until 3-4PM, producing ~3.2kWH of energy. Being literally the shortest days of the year and with some trees in the way, I expect this to go up significantly as we get into spring/summer. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/01/image-12.png" class="kg-image" alt="Partial Solar Homelab" loading="lazy" width="2000" height="1041" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-12.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-12.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2026/01/image-12.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2026/01/image-12.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Bottom chart: PV input in yellow, rack power in blue. Top chart: total produced kWH</span></figcaption></figure><p>At today&apos;s rates, offsetting 3.2kWh / day saves about $0.80, or a little better than a quarter of the 12kWH of energy my rack is using per day. </p>]]></content:encoded></item><item><title><![CDATA[Wooden Boat Cradle Sheets – Sewing Pattern]]></title><description><![CDATA[<p>Jay&apos;s grandfather handmade a wooden boat cradle for him when he was born which has been passed down through a few children in the family. Our extended family is expecting their first little addition in the spring &amp; will get passed the wooden boat cradle. The original sheets</p>]]></description><link>https://houndhillhomestead.com/wooden-boat-cradle-sheets-sewing-pattern/</link><guid isPermaLink="false">695b1e04cb5c0a034824e723</guid><dc:creator><![CDATA[Brittany]]></dc:creator><pubDate>Mon, 05 Jan 2026 02:32:01 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2026/01/Messenger_creation_4FAE721C-F8D8-469B-AA73-051331630C7F.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2026/01/Messenger_creation_4FAE721C-F8D8-469B-AA73-051331630C7F.jpeg" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern"><p>Jay&apos;s grandfather handmade a wooden boat cradle for him when he was born which has been passed down through a few children in the family. Our extended family is expecting their first little addition in the spring &amp; will get passed the wooden boat cradle. The original sheets which were custom made locally are old so new ones were needed.</p><p>The mattress includes two curved side edges with a tapered side all the way around, so a standard sheet pattern wasn&#x2019;t useful here. The tricky part is the curved edges and getting the rolled hem to set flat. Below is the pattern I used to make these sheets and tips I found useful. I am new to sewing so this pattern is probably not the most technical.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image.png" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="514" height="684"></figure><p><strong>Items: </strong></p><ul><li><strong>Fabric**</strong> &#x2013; I ended up buying <a href="https://amzn.to/4soUngb?ref=houndhillhomestead.com">standard size crib sheets</a> and reusing the fabric. 1 standard sheet will make 1 boat sheet with a little left over. Otherwise, I think 2 yards of fabric would probably do it.</li><li><a href="https://amzn.to/3YIun1X?ref=houndhillhomestead.com"><strong>Sewing Machine</strong></a></li><li><a href="https://amzn.to/4pjUMOd?ref=houndhillhomestead.com"><strong>Iron</strong></a></li><li><a href="https://amzn.to/3YSKERM?ref=houndhillhomestead.com"><strong>Ruler</strong></a></li><li><a href="https://amzn.to/3YWK71a?ref=houndhillhomestead.com"><strong>Cutting Mat</strong></a></li><li><a href="https://amzn.to/495BfMJ?ref=houndhillhomestead.com"><strong>Rotary Cutter</strong></a><strong> or a </strong><a href="https://amzn.to/4jt7vwX?ref=houndhillhomestead.com"><strong>good pair of scissors</strong></a></li><li><strong>Thread</strong></li><li><a href="https://amzn.to/4jyYdiY?ref=houndhillhomestead.com"><strong>Clips</strong></a><strong> or pins</strong></li><li><a href="https://amzn.to/4boYiU2?ref=houndhillhomestead.com"><strong>Elastic </strong></a><strong>&#x2013; I used 1/8&#x201D; but you can use any size if you plan your seam allowance accordingly.</strong></li><li><strong>Other helpful items: </strong><a href="https://amzn.to/4aFeXCE?ref=houndhillhomestead.com"><strong>Heat erasable pen</strong></a><strong> &amp; </strong><a href="https://amzn.to/49jUvVA?ref=houndhillhomestead.com"><strong>flexible drawstring threader tool</strong></a></li></ul><p>** always prewash your fabric to account for any shrinking</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image-1.png" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="982" height="1250" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-1.png 600w, https://houndhillhomestead.com/content/images/2026/01/image-1.png 982w" sizes="(min-width: 720px) 720px"></figure><p><strong>Step 1</strong> &#x2013; I made this cardboard cutout template to have in the family &amp; for future additions! You can make your own by tracing an outline of the mattress you need sheets for (top of mattress side down) then measure 5in around the whole mattress, mark, &amp; cut out a template. You could also do this on fabric, but I had to make a few, so it was easier to have a template ready in advance.</p><p><strong>Step 2</strong> - Once you have your fabric cut, sew all three corners (A, B, &amp; C) together by matching up the right sides of the fabric. Use a 1/4in seam, then finish with a zigzag stitch to avoid fraying.</p><p><strong>Step 3 </strong>- Sew a gathering or basting stitch which is just a regular stitch without any back stitching along both sides of the boat where it&#x2019;s curved (do not include the straight bottom section) about where you want to roll or fold the hem, I did mine at 3/8ths inch due to my elastic size.</p><p>Fold your hem over twice but make sure you have access to your gathering stitch. Pull the gathering stitch so that it lays nice and flat you may need to move the fabric around a bit to get it gathered in the right spot.</p><p>&#xA0;Once flat, iron &amp; sew along the inner edge leaving about a 2- or 3-inch gap so you can insert the elastic. (I left my gap on the straight end piece).</p><p><strong>Step 4</strong> &#x2013; Using a safety pin or flexible drawstring threader tool feed the elastic through the rolled hem. This small elastic I just tested on the mattress pulled it, so it was tight but loose enough to still get off the mattress &amp; tied it in a double knot.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image-3.png" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="1046" height="1218" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/01/image-3.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/01/image-3.png 1000w, https://houndhillhomestead.com/content/images/2026/01/image-3.png 1046w" sizes="(min-width: 720px) 720px"></figure><p><strong>Step 5 </strong>&#x2013; Sew up that gap edge. I also sewed two cross sections to hold the elastic in place in case my tie didn&#x2019;t hold. See picture above.</p><p><strong>Step 6</strong> &#x2013; I also added two bigger elastic pieces crosswise on the back side of the mattress to make sure it stayed in place &amp; didn&#x2019;t pop off. This is optional but recommended due to safety concerns.</p><p>Finished product:</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image-5.png" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="450" height="600"></figure><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2026/01/image-6.png" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="450" height="600"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2026/02/Snapchat-575869982.jpg" class="kg-image" alt="Wooden Boat Cradle Sheets &#x2013; Sewing Pattern" loading="lazy" width="1200" height="900" srcset="https://houndhillhomestead.com/content/images/size/w600/2026/02/Snapchat-575869982.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2026/02/Snapchat-575869982.jpg 1000w, https://houndhillhomestead.com/content/images/2026/02/Snapchat-575869982.jpg 1200w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">All set up with new sheets</span></figcaption></figure>]]></content:encoded></item><item><title><![CDATA[iPad Wall tablet: POE Power Control the Hard Way]]></title><description><![CDATA[<p>I&apos;m upcycling an old 1st gen iPad Pro 9.7&quot; into a wall tablet for home assistant. I&apos;ll be mounting a low voltage old work box behind it and using a <a href="https://mbmounts.com/products/universal-frameless-tablet-wall-mount?ref=houndhillhomestead.com">Makes by Mike frameless wall mount</a>. </p><p>Power was a big concern from the start.</p>]]></description><link>https://houndhillhomestead.com/poe-ipad-power-control-the-hard-way/</link><guid isPermaLink="false">692518dfcb5c0a034824e635</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Tue, 25 Nov 2025 03:56:24 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/11/ipad_diagram--1-.png" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/11/ipad_diagram--1-.png" alt="iPad Wall tablet: POE Power Control the Hard Way"><p>I&apos;m upcycling an old 1st gen iPad Pro 9.7&quot; into a wall tablet for home assistant. I&apos;ll be mounting a low voltage old work box behind it and using a <a href="https://mbmounts.com/products/universal-frameless-tablet-wall-mount?ref=houndhillhomestead.com">Makes by Mike frameless wall mount</a>. </p><p>Power was a big concern from the start. I had a cat6 jack in the same stud bay I wanted the tablet to sit (and low voltage is nice vs 120 + wall wart), so I ordered a MBM slim power cable and a POE adapter to go with the mount. </p><p>Old devices that perpetually sit on a charger (and even some that don&apos;t I think) tend to have their batteries swell. I read about a <a href="https://support.apple.com/en-us/111822?ref=houndhillhomestead.com">charge management feature</a> that should seamlessly protect the battery while it&apos;s plugged in for prolonged periods of time, but also read mixed reviews. I found a jailbreak tweak that allows you to set a maximum charge percentage, called <a href="https://github.com/udevsharold/battsafepro?ref=houndhillhomestead.com">BattSafePro</a>, but I foolishly updated my iPad from iOS 14.x to 16.7.12, limiting me to a semi-tethered jailbreak through palera1n.</p><p>The usual approach to power management on the home assistant forums was a smart switch - monitor battery percentage with HASS companion app battery state sensor, then turn power on/off with an automation. Being that I chose the POE route, I didn&apos;t have a straightforward way to do that. </p><p>My home network is fronted by a Fortigate firewall. I have 3 fortiswitches and 3 fortiaps all managed by the fortigate. I got to looking at the fortigate rest api and came up with a plan - use a pair of home assistant <a href="https://www.home-assistant.io/integrations/rest_command/?ref=houndhillhomestead.com">rest_commands</a> to enable/disable the physical port, effectively acting as a smart switch.</p><p>The first step was creating a lowest-rights admin profile. I gave it only wifi/switch read/write access. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/11/image.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="1458" height="1354" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image.png 1000w, https://houndhillhomestead.com/content/images/2025/11/image.png 1458w" sizes="(min-width: 720px) 720px"></figure><p>I then went into system -&gt; administrators and created a new REST API admin, assigned to the aforementioned limited rights admin profile. After hitting create, I copied the API key. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/11/image-1.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="1100" height="594" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image-1.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image-1.png 1000w, https://houndhillhomestead.com/content/images/2025/11/image-1.png 1100w" sizes="(min-width: 720px) 720px"></figure><p>The next hurdle was figuring out the REST API endpoints I&apos;d be dealing with - I fired up postman and read through the documentation. I ultimately came up with...</p><pre><code>https://{fortigate_ip}/api/v2/cmdb/switch-controller/managed-switch/{switch_serial_number}/ports/{port_name}</code></pre><p>Where fortigate_ip is your management IP, switch_serial_number is the serial number of the managed switch (S248xxxxxxxxx), and port_name is the name of the port as found in the running config (port1, port20, port30, etc). </p><p>The payload required for enabling the port at that REST API endpoint was simple: </p><pre><code class="language-json">{
  &quot;status&quot;: &quot;up&quot;
}</code></pre><p>As you may have guessed, the payload required to disable the port was equally simple: </p><pre><code class="language-json">{
  &quot;status&quot;: &quot;down&quot;
}
</code></pre><p>The API key was passed in the headers as authorization: bearer {api_key}.</p><p>With the basics figured out, I created the home assistant RESTful command integration. This is configured via yaml in the main configuration.yaml. </p><pre><code class="language-yaml">#iPad Power Control Start

rest_command: 

  power_on_ipad:
    url: &quot;https://{myfortigateip}/api/v2/cmdb/switch-controller/managed-switch/{myswitchserialnumber}/ports/port30&quot;
    method: PUT
    headers:
      authorization: !secret fortigate_key
      content_type: &quot;application/json&quot;
    payload: &apos;{
                &quot;status&quot;: &quot;up&quot;
            }&apos;
    verify_ssl: false
    
  power_off_ipad:
    url: &quot;https://{myfortigateip}/api/v2/cmdb/switch-controller/managed-switch/{myswitchserialnumber}/ports/port30&quot;
    method: PUT
    headers:
      authorization: !secret fortigate_key
      content_type: &quot;application/json&quot;
    payload: &apos;{
                &quot;status&quot;: &quot;down&quot;
            }&apos;
    verify_ssl: false</code></pre><p>In secrets.yaml, I created a new secret with my api key. </p><pre><code class="language-yaml">fortigate_key: &quot;Bearer {MyFortigateAPIKey}&quot;</code></pre><p>Finally, I reloaded home assistant to pick up the new configuration and opened up developer tools. Under actions, I had two new rest_commands, power_on_ipad and power_off_ipad. Testing proved successful for both power on and power off. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/11/image-2.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="2000" height="1161" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image-2.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image-2.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/11/image-2.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/11/image-2.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Testing new action</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/11/image-3.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="1762" height="1394" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image-3.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image-3.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/11/image-3.png 1600w, https://houndhillhomestead.com/content/images/2025/11/image-3.png 1762w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Port successfully disabled</span></figcaption></figure><p>The last step was to create a pair of automations, one to turn the port on when battery level is below a threshold and another to turn the port off when it is charged above a threshold. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/11/image-4.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="2000" height="748" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image-4.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image-4.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/11/image-4.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/11/image-4.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Power on</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/11/image-5.png" class="kg-image" alt="iPad Wall tablet: POE Power Control the Hard Way" loading="lazy" width="2000" height="749" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/11/image-5.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/11/image-5.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/11/image-5.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/11/image-5.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Power off</span></figcaption></figure><p>This was a quick project that highlights how flexible home assistant is at connecting completely separate systems with ease.  </p><p></p><p></p><p>Automation yaml:</p><pre><code class="language-yaml">alias: iPad - Power off when battery above 60%
description: &quot;&quot;
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.living_room_ipad_battery_level
    above: 60
conditions: []
actions:
  - action: rest_command.power_off_ipad
    metadata: {}
    data: {}
mode: single
</code></pre><pre><code class="language-yaml">alias: iPad - Power on when battery below 40%
description: &quot;&quot;
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.living_room_ipad_battery_level
    below: 40
conditions: []
actions:
  - action: rest_command.power_on_ipad
    metadata: {}
    data: {}
mode: single
</code></pre>]]></content:encoded></item><item><title><![CDATA[Smart light wood stove temperature indication]]></title><description><![CDATA[<p>Last year, <a href="https://houndhillhomestead.com/woodstove-temperature-monitoring/">I installed a K-type thermocouple in my wood burner&apos;s stove pipe</a>, right above the fire box.  Combined with an ESP8266 and ESPHome, this setup lets me keep tabs on the efficiency of my burn. I use it religiously to determine when to cut my primary air</p>]]></description><link>https://houndhillhomestead.com/smart-light-wood-stove-temperature-indication/</link><guid isPermaLink="false">68edaf221573ea0347863cd6</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Tue, 14 Oct 2025 03:41:46 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/10/20251013_215818.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/10/20251013_215818.jpg" alt="Smart light wood stove temperature indication"><p>Last year, <a href="https://houndhillhomestead.com/woodstove-temperature-monitoring/">I installed a K-type thermocouple in my wood burner&apos;s stove pipe</a>, right above the fire box.  Combined with an ESP8266 and ESPHome, this setup lets me keep tabs on the efficiency of my burn. I use it religiously to determine when to cut my primary air off when starting a fire and when to reload the stove later in a burn. I have a small read out right above my main living room card on my main dashboard. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/image-7.png" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="690" height="164" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-7.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-7.png 690w"><figcaption><span style="white-space: pre-wrap;">Main dashboard - temperature at a glance</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/image-8.png" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="774" height="678" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-8.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-8.png 774w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Tapping the temperature brings up a graph</span></figcaption></figure><p>This has been super handy and helped me dial in my stove use, but particularly when a fire is just getting rolling and temperatures are increasing quickly, it is a bit of a pain to keep bringing my phone out. To remedy this, I repurposed a seldom-used smart light in the living room to give me a visual indication of stove temperature. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251013_215818-1.jpg" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251013_215818-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251013_215818-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251013_215818-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/10/20251013_215818-1.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Basically, I setup a home assistant automation that takes the wood stove flue temperature value and maps it to a color, then sets a smart bulb to that color. My target light is a <a href="https://amzn.to/4olFgRT?ref=houndhillhomestead.com">Wyze Color Bulb</a> that <a href="https://www.reddit.com/r/wyzecam/comments/z5fv47/wyze_color_bulb_wlpa19c_flash_with_factory/?ref=houndhillhomestead.com">I took apart, soldered headers on, and flashed with Tasmota</a>. I have full local control of it via HA and it is capable of setting any color and brightness. These are great, cheap, bright lights and I&apos;ve been using them for years in our last two homes. They&apos;re also based on an ESP32!</p><p>Home Assistant has a couple of formats to set color on light bulbs - you can send RGBW/RGBWW or Hue/Sat.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/image-9.png" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="656" height="1160" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-9.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-9.png 656w"></figure><p>Rather conveniently, the hue/sat color wheel maps well to logical temperatures. Starting from the west side and working your way around to north, it transitions from blue to green to yellow/orange/red. Logically, hue value 240 = blue = very cold, 120 = green = target temperature, 0 = red = very hot. I chose to keep saturation at 100% to get the boldest colors/edge of this wheel as depicted in the picture below. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.learnui.design/img/hsb/color-wheel.png" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="500" height="500"><figcaption><span style="white-space: pre-wrap;">HS color wheel</span></figcaption></figure><p>As automations go, this is a pretty simple one. The trigger is any state change in the wood stove temperature reading. My ESP8266 reads the stove pipe thermocouple value once every 30s. I have a condition that the stove temperature is above 100F (and a separate automation that shuts the light off if below 100F, so I don&apos;t have a colorful corner light when the stove is off). To actually set the color, I shamelessly stole some code from the comments on <a href="https://community.home-assistant.io/t/change-led-colour-based-on-sensor-value/602125/3?ref=houndhillhomestead.com">this post</a> in the HA forums. T_min and t_max are minimum and maximum temperatures. H_min is the color hue at the minimum temperature (HS color wheel value, 240 for blue) and H_max is the color hue at the maximum temperature (0 for red). T_input is set to my stove sensor, and h_out is a simple linear interpolation with 200F input = 240/blue hue, 800F input = 0/red hue. </p><figure class="kg-card kg-code-card"><pre><code class="language-YAML">alias: Woodstove Temperature -Indicator - Landing Light
description: &quot;&quot;
triggers:
  - trigger: state
    entity_id:
      - sensor.woodstove_temp_living_room_temperature
conditions:
  - condition: numeric_state
    entity_id: sensor.woodstove_temp_living_room_temperature
    above: 100
actions:
  - action: light.turn_on
    metadata: {}
    data:
      hs_color: &gt;
        {% set t_min = 200 %} 

        {% set t_max = 800 %} 

        {% set h_min = 240 %} 

        {% set h_max = 0 %} {% set t_input =
        states(&apos;sensor.woodstove_temp_living_room_temperature&apos;)|float %} 

        {% set h_out = (h_max - h_min) / (t_max - t_min) * (t_input - t_min) +
        h_min %} 

        [ {{ ([0,h_out,240]|sort)[1]|int }}, 100 ] #limit output to 0 &lt;= h_out
        &lt;= 240
      brightness: 100
    target:
      entity_id: light.landing
mode: single
</code></pre><figcaption><p dir="ltr"><span style="white-space: pre-wrap;">Automation yaml</span></p></figcaption></figure><p>The last bit of this code in the hs_color portion limits the output to between h_min and h_max, ensuring you only ever get blue to red values. </p><p>Brightness is on a scale of 0-255. I chose to set it at 100 - this is bright enough to see but not bright enough to be obnoxious and affect the overall hue of the room. </p><p>Since the hue value updates every 30s, the light adjusts very gradually and doesn&apos;t catch your eye with large step changes. Here are some example shots from a several hour burn this evening.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251013_215818-1.jpg" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251013_215818-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251013_215818-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251013_215818-1.jpg 1600w, https://houndhillhomestead.com/content/images/2025/10/20251013_215818-1.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251013_223251--1-.jpg" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251013_223251--1-.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251013_223251--1-.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251013_223251--1-.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/10/20251013_223251--1-.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251013_233403.jpg" class="kg-image" alt="Smart light wood stove temperature indication" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251013_233403.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251013_233403.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251013_233403.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/10/20251013_233403.jpg 2400w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[Rage Against the Garage Door Opener]]></title><description><![CDATA[<p>It&apos;s hard to believe it&apos;s been 2 years without a remote way to control our garage door. I have long threatened to build an esp-based opener, but I finally broke down and bought one instead. </p><p>In our first home in Virginia, we originally had manual garage</p>]]></description><link>https://houndhillhomestead.com/rage-against-the-garage-door-opener/</link><guid isPermaLink="false">68ebb7921573ea0347863c2b</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sun, 12 Oct 2025 15:41:32 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/10/ratgdo.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/10/ratgdo.jpeg" alt="Rage Against the Garage Door Opener"><p>It&apos;s hard to believe it&apos;s been 2 years without a remote way to control our garage door. I have long threatened to build an esp-based opener, but I finally broke down and bought one instead. </p><p>In our first home in Virginia, we originally had manual garage doors (no opener). I installed a cheap opener I got on clearance at home depot. The wall remote had two wires going back to the opener and several buttons for open/close/light functions. I spent some time probing it with a multimeter and as it turned out, each button closed a contact with a different resistance value, which was then sensed by the opener to determine function. I bought 3  3.3V dry contact relays, soldered resistors of similar values to the OEM opener on a protoboard, and then hooked the relays + resistor combos up to some digital pins on an ESP8266. I used ESPHome to control it all natively in home assistant - it worked great. </p><p>In our new-to-us Maine home, we have a 2005 vintage Chamberlain opener. Rather than simple resistance-based buttons, it uses Chamberlain&apos;s &quot;Security+&quot;. The wall remote uses a rolling code encryption protocol to talk to the opener and tell it to open/close/turn the light on. Chamberlain sells the <a href="https://amzn.to/3IF0pre?ref=houndhillhomestead.com">MyQ Hub</a> to make any of their garage door openers smart. A couple of years ago, there was a nice integration with home assistant but <a href="https://www.home-assistant.io/blog/2023/11/06/removal-of-myq-integration/?ref=houndhillhomestead.com">Chamberlain rather infamously shut it down </a>and forced users to use their app in an effort to push subscription to their cloud services. As smart device vendors have become increasingly unreliable at <a href="https://www.reddit.com/r/gadgets/comments/1lx7rfi/belkin_is_ending_support_for_nearly_all_its_wemo/?ref=houndhillhomestead.com">maintaining their smart home services long term</a>, I have been on a quest to install purely locally controlled devices. The MyQ was out.</p><p>I started looking at OpenGarage - it&apos;s ESP based with an ultrasonic distance sensor to determine door state. I remembered one other option that sounded like RAT... which was <a href="https://paulwieland.github.io/ratgdo/?ref=houndhillhomestead.com">RATGDO</a>. As I came to find out, this stood for rage against the garage door opener, which was a way cooler name than I thought it&apos;d be.  </p><p>Both are ESP based but RATGDO offers native ESPHome based firmware that can be adopted into the Home Assistant ESPHome builder add on. The latest RATGDO32 is based on an ESP32 chip and advertised native Security+ support (unclear to me if OpenGarage has full functionality on security+ vs the newer Securuty+ 2.0). Additionally, it advertised door state without needing to mount an ultrasonic sensor. Price was comparable around $60 for either - I ordered the ratgdo32 <a href="https://ratcloud.llc/products/ratgdo32?ref=houndhillhomestead.com">directly from Paul&apos;s website</a>. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/20251011_094758.jpg" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251011_094758.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251011_094758.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251011_094758.jpg 1600w, https://houndhillhomestead.com/content/images/2025/10/20251011_094758.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">ratgdo32 as delivered - 3d printed case and wiring for both Security+/Security+2.0 and dry contact relay control (black cables)</span></figcaption></figure><p>I plugged the wall wart in and fired up the device. You can do the initial connection to your network by connecting to a wireless SSID it broadcasts or via bluetooth from Home Assistant - I setup a BLE relay a few weeks back with an ESP32 and the ratgdo popped up right in discovered devices. I punched in my wireless creds and it connected without fanfare. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/image.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="975" height="541" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image.png 600w, https://houndhillhomestead.com/content/images/2025/10/image.png 975w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Initial RATGDO setup via bluetooth from home assistant</span></figcaption></figure><p>I found the device&apos;s IP in my firewall&apos;s DHCP dashboard and opened up the web page (although punching in the mdns name ratgdo.local should&apos;ve worked too).  I followed the <a href="https://ratcloud.llc/pages/firmware?ref=houndhillhomestead.com">initial firmware setup guide</a>, downloading the <a href="https://ratgdo.github.io/esphome-ratgdo/?ref=houndhillhomestead.com">ratgdo32 Security+ firmware</a>. From the device&apos;s web page, I uploaded the file and hit update. The first few times the connection reset and the update failed by the 3rd time it proceeded without a hitch.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/image-1.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="1486" height="1408" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-1.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/image-1.png 1000w, https://houndhillhomestead.com/content/images/2025/10/image-1.png 1486w" sizes="(min-width: 720px) 720px"></figure><p>With the device flashed, I fired up ESPhome builder in home assistant. Along the top, it showed one device discovered and prompted me to adopt it. ESPHome grabbed the config from the device, added it&apos;s encryption key to talk to my specific instance, and reflashed the device.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/image-2.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="975" height="570" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-2.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-2.png 975w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Adopting ratgdo32 in esphome device builder</span></figcaption></figure><p>After that, all was well on the home assistant side and I could see all of the ratgdo functions in the ESPHome integration page. </p><p>Back to the physical install - wiring was simple. The wires from the obstruction sensors came into the lower &quot;W&quot; and &quot;B&quot; terminals and the wires from the OEM remote (which in my case was just a doorbell style button) came into the &quot;R&quot; and &quot;W&quot; terminals at the top. The 3 pin header below the push terminals had a pigtail that went back out to the garage door opener itself - only 3 of the 4 terminals are landed when installed as depicted below.</p><figure class="kg-card kg-image-card"><img src="https://cdn.shopify.com/s/files/1/0885/8963/1788/files/ratgdo32_disco_sec_wiring_diagram_4c2de093-a9b0-4fea-bc8b-adbbe247f038.png?v=1740517994" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="1670" height="1130"></figure><p>My wiring didn&apos;t exactly match the guide color wise but it was easy to tell which wires went to the obstruction sensors (blue/white) and which went to the wall button. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251011_114029.jpg" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251011_114029.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251011_114029.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251011_114029.jpg 1600w, https://houndhillhomestead.com/content/images/2025/10/20251011_114029.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><p>Once I had everything wired, I used the clip on the device to secure it to a little metal plate on top of my opener. I might do something cleaner eventually but this seemed secure for now. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/20251011_120809.jpg" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/20251011_120809.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/20251011_120809.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/20251011_120809.jpg 1600w, https://houndhillhomestead.com/content/images/2025/10/20251011_120809.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><p>The device worked immediately. On first close/open, it updated the time to close and time to open sensor values. The light entity worked flawlessly as did the obstruction sensor feedback. With the simple doorbell style remote we have on our wall, I had no way to toggle the light on (it came on for ~1 minute each time the door was opened or closed). Being able to use it as an additional overhead light will be very nice. If I can find a cheap one used, I may pick up a Chamberlain <a href="https://www.amazon.com/LiftMaster-Wall-Control-Garage-Opener/dp/B01IE7XW6O?adgrpid=176893610045&amp;hvpone=&amp;hvptwo=&amp;hvadid=748119797918&amp;hvpos=&amp;hvnetw=g&amp;hvrand=4663877178273920416&amp;hvqmt=&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9002865&amp;hvtargid=dsa-2416893514695&amp;hydadcr=&amp;mcid=&amp;hvocijid=4663877178273920416--&amp;hvexpln=67&amp;tag=googhydr-20&amp;hvsb=Home_BuildingSupplies_d&amp;hvcampaign=dsadesk&amp;ref=houndhillhomestead.com">889LM wall remote</a> - ratgdo will expose the motion sensor status on it.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/image-3.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="2000" height="1210" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-3.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/10/image-3.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/10/image-3.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/10/image-3.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>On my main dashboard, I added a couple of small header entities that show obstruction sensor status and door status. Clicking them brings up the entity details where you can toggle the door. With so many entities and integrations, I&apos;ve been trying to create a minimalist home dashboard with detailed room sub-views. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/image-4.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="846" height="166" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-4.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-4.png 846w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/10/image-5.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="764" height="856" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-5.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-5.png 764w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Clicking on door status opens this up</span></figcaption></figure><p>Clicking on the garage lights or garage room header brings you to the detailed garage sub view - for now I just slapped the opener on there as a tile entity. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/10/image-6.png" class="kg-image" alt="Rage Against the Garage Door Opener" loading="lazy" width="784" height="602" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/10/image-6.png 600w, https://houndhillhomestead.com/content/images/2025/10/image-6.png 784w" sizes="(min-width: 720px) 720px"></figure><p></p>]]></content:encoded></item><item><title><![CDATA[Winter Project - Attic office]]></title><description><![CDATA[<p>When we purchased it, our home had a ~400sqft area in the attic with sturdy subfloor, a couple of skylights, and windows. I immediately made mental plans to finish it and finally got around to it. I&apos;d never framed anything beyond a couple of chicken coops and also</p>]]></description><link>https://houndhillhomestead.com/winter-project-finishing-attic/</link><guid isPermaLink="false">68730cd34c15b40357809805</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sat, 19 Jul 2025 03:56:46 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/07/Image_Editor.png" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/07/Image_Editor.png" alt="Winter Project - Attic office"><p>When we purchased it, our home had a ~400sqft area in the attic with sturdy subfloor, a couple of skylights, and windows. I immediately made mental plans to finish it and finally got around to it. I&apos;d never framed anything beyond a couple of chicken coops and also had never hung or finished drywall - this was a major learning experience. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/07/20240218_163553.jpg" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/07/20240218_163553.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/07/20240218_163553.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/07/20240218_163553.jpg 1600w, https://houndhillhomestead.com/content/images/2025/07/20240218_163553.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">First steps - framing up knee walls</span></figcaption></figure><p>This project began last winter with the framing of the knee walls. The back wall on the right in the photo above already had some studs at 24OC spacing, so I chose to stick to it rather than have a mixture of 16OC and 24OC. To maximize space for insulation, I framed everything including the knee walls with 2x6s. To make a smooth transition between the roof knee walls, my Dad and I ripped top boards at an angle with a circular saw. Before I got too far with framing, I ran 2 20A circuits and terminated a couple of outlets to give me power to work. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/07/20240331_115921.jpg" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/07/20240331_115921.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/07/20240331_115921.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/07/20240331_115921.jpg 1600w, https://houndhillhomestead.com/content/images/2025/07/20240331_115921.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><p>Not really having any concept of how I was going to hang the drywall early on, I added lots of blocking along the way. The additional framing on the end walls + the knee walls went up fairly quickly. I also framed in two closets, one a more traditional closet and one a small open closet to house a network rack + some gear. Most of the room had existing roof cross members, with the exception of the middle. I ran these in the opposite direction, as I had no place to land them on the right side with the window opening area. I added many additional vertical support pieces, tying to the roof rafters, to sure up the entire ceiling. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/07/20240412_202532.jpg" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1950" height="1462" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/07/20240412_202532.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/07/20240412_202532.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/07/20240412_202532.jpg 1600w, https://houndhillhomestead.com/content/images/2025/07/20240412_202532.jpg 1950w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">New traditional closet on the right - network closet on the left</span></figcaption></figure><p> I hung the drywall in the network closet first and painted it so I could hang the rack. This allowed me to run cat6 cables to a bunch of jacks I had planned in the room. In addition, I installed two 12 port patch panels outside the room, one on either end, so I could easily add WAPs/cameras in the future without having to get wires into the room. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczPgLPq7zrN2xrsccX-ePZJhqgtN9cAjRifAolhXUuMqpb0utjo6J1sDSFIXe4_DiHSobnTE-h6nF59KwCw0N90n-CB9wLQbjBWFTMb0cxxdc53oYf5lUHZ4poyZvVW6D9a5k0oNYTkokEIs1hFWqpwDNw=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">CAT6 going in - run across the roof rafters. One of the two 12 port patch panels is visible in the back, mounted to vertical board outside of the room.</span></figcaption></figure><p>After framing was complete, insulating was the next task. I took 1&quot; sheets of EPS and used plastic head nails to attach it to the back of the framing all the way around the room. I taped the seams and spray foamed any gaps, like at the corners. My goal was to provide a tight air seal and prevent air from washing through the fiberglass kraft faced insulation I installed in the stud bays. This provided ~R26 in the walls. </p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczOthxPzNZDfTx4lkcGcuQjC6uJEyLdkVWb6rMN8senCq2MVnQf7qcyJEK8vaSnIAULSNDkObCfkgNG4aQYkyPVVQCemkrJgiVoV-YvTPOVtW6A0JgenRiM7osh17dL3gClvKQqZGx_Ao5YIiJ47k6L5tA=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>On the portion of the ceiling up against the roof rafters, I installed foam baffles and r38 kraft faced fiberglass insulation. On the roof proper, I stapled r30 kraft batts up in the stud bays and then rolled unfaced r30 in top of it in the opposite direction for a total of R60. Last winter, I added R30 on top of existing R38 in the rest of the house, so this roughly matched. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczPwgdQX344xvM90aSPOGSC3vEl4Du_UzpQD72HK3Sl6xVsX6k0GsajkAD5j1ZDeEyZYgp-0w3CCAOduazbf_ln2qtU3uJC3smqXL54-QpEgRNXIAeZL2HjRBB5Mw-IhVHMnHfPJPKwsHSGAqfLv0Ax02A=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">Ceiling insulation with r60 in place - also see additional vertical supports added to support 2x6 roof joists</span></figcaption></figure><p>With insulating complete, I moved on to drywall. I opted to hang 5/8&quot; fire rated for both ceilings and walls - I thought it would be better with the 24&quot; OC framing and significantly decrease ambient sound levels. Due to its weight and working mostly alone, I picked up a <a href="https://amzn.to/4nUQPQA?ref=houndhillhomestead.com">drywall hoist</a> - this made the entire job much easier. As I went along the ceiling, I cut holes and installed <a href="https://amzn.to/3ICUqT8?ref=houndhillhomestead.com">Phillips Hue 6&quot; slim downlights</a> - these are the rolls royce of canless lights, integrate well with home assistant, and canless were a must in my quest to keep the room airtight. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczNYPYzzq2_K1mU1hwRH7OMbu9kQfcuWM9gWJCCC6eWSsdaC4h8o1p_mTOHyE2qJC6I3BwE2m9bwEVW3PBdVNlUbzycz9VCJZUzP54A8UbqNkuQHLDzL4OnwEbqU072eiinV4V3s1WLdSdKYuftoEzykVQ=w1950-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1950" height="1462"><figcaption><span style="white-space: pre-wrap;">First few sheets up</span></figcaption></figure><p>With a couple of tweaks to high and low spots as I went along (I ran an electric planer across a few ceiling studs in particular), drywall progress nicely. To cut in the electrical boxes, I picked up a <a href="https://amzn.to/4f3sfsW?ref=houndhillhomestead.com">blind box locator</a> which really sped things up and kept my cuts clean. I could only fit 8 foot sheets up the stairway but I hung the largest pieces I could to minimize joints and subsequent finishing. In doing so, I ended up with quite a few waste scrap pieces. For butt joints, I made <a href="https://www.trim-tex.com/products/buttboard-drywall-backer?ref=houndhillhomestead.com">DIY butt-board</a> with scrap OSB + shims to pull the joints in and make them easier to fill +float. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczP1tLORovfSU80mXc_0aME5o1eMpfqC1KvVC90lyM-EHuY8S6N-8mn_4oardmLHm9mKsU2_BDHuq-JJ5sTyB4z46A7vGu8MGPp8CFn2LH_QBg0_oNlokXrfQOPZqObCU0NsFQlSAkmG00b8Nf6BeZvtWg=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">Hanging complete - cat enjoying insulation - mudding started</span></figcaption></figure><p>Sanding and mudding took a good week and produced ungodly amounts of dust. I picked up a special shop vac filter to avoid spewing the super fine dust everywhere throughout the house.</p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczNNv4TXybn9CiHjNMnfYRxaMHegAVolHcKrkxLNImPREZHMpcUp-lcPDKOu3jX6eQMxvT3saAJpRlUKBFKKvtIyQjn0316e5HuV430ODFvHIutGmYWAgmCpB4fWT006BcOGEEPM7VaiSiY0VykONADOXQ=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>I bought a table saw, watched a couple videos, and trimmed the windows out in pine. I went on to stain this to match the baseboards.</p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczOuSZSaQnXZzqU_JbAgZo_oBtTj6tclaeamNVMZNrLiym2xr2aitZkSKLok8aveotqSIsXiAPiJ8oSGr9tcSSXy7nn4OwvQ6HWBKhPNYaScnqLZIwsSDFGj4PAt4_k__va37mXbh6tRYh4NOL_MZxglOw=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>I spent a couple of days priming and painting - I used kilz 3 primer on everything, topped with 2 coats of Behr Dynasty in Beige + an accent wall in dark brown. Behr didn&apos;t appear to sell a ceiling flat in the Dynasty line so I stepped down to the Maruqee line for that portion. </p><p>After painting was wrapped up, it was time for flooring. I bought unfinished white oak hardwood from a local lumber yard at ~4.75/sqft. I had looked at pre-finished to save time but didn&apos;t like the micro-bevels. Hardwood in general, kept dry, should outlast the house. I picked up a <a href="https://amzn.to/3TNWZUU?ref=houndhillhomestead.com">flooring nailer</a> and a brad/<a href="https://amzn.to/4eT5APG?ref=houndhillhomestead.com">finish nailer</a>. After the first couple of rows, I was able to swap over to the flooring nailer and really start making progress. I left an expansion gap all around the edge. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczOVO_a1JQ_kCBsofc-TIHarucv3kIh2fUXb9o-Cpyclk9MMLIqOYU3lRaQoXS9kyof91Bh3dSl0UazMy7e18pPzUL9f_kw4cTZKZTGtz0cdz5jy5LlWz-PQGWXkB78S9trg0H8bd6P8WbZxY9g5Q6R3lQ=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">Flooring going down - just before painting, I also cut in a couple of Acudor fire rated, insulated attic access doors. I added additional weather stripping to these units to try and maintain my air tight envelope as much as possible</span></figcaption></figure><p>The flooring went down in a few evenings.</p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczMDGYGLnm37yl8uxCt9Fkul8JIjYlEMMLQOodtGuBb6hESzImsuYbmFU74l483Q2TkfuDotXsG0b4EFMvEpqrjuqvyBVEhahq6F_b71HtpKOa_HZdcvUynvgsivTvVxfaEAserGt4y3rMzwX9ql5gtddg=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>Next, I rented an orbital sander from home depot and went through various grits, starting at 36 and finishing at 120 as I remember. It took an entire day and made even more dust than the drywall. </p><p>I did quite a bit of research on flooring coatings and decided on several Bona products in a satin sheen. I started with 2 coats of <a href="https://amzn.to/40sZEHk?ref=houndhillhomestead.com">Bona Classic Seal</a>. I did the second coat later in the day of the first coat to avoid having to mechanically abrade. I then screened by hand with a 220 grit pole sander before top coating with 2 coats of <a href="https://amzn.to/46OU8T9?ref=houndhillhomestead.com">Bona Traffic HD</a>. I applied both with a microfiber roller on a pole rather than using a squeegee - despite reading some horror stories, it went on very easily. Advertised coating cover was fairly accurate and I used ~2 gallons of product, 1 per coat. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://scontent-det1-1.xx.fbcdn.net/v/t1.15752-9/519563119_710518238637654_7047388054305803370_n.jpg?_nc_cat=103&amp;ccb=1-7&amp;_nc_sid=9f807c&amp;_nc_ohc=noIdPihZNj8Q7kNvwHY_SRn&amp;_nc_oc=AdneQyxEddz1O26VnIjL5jChEvuKl4V3O62YBkrnOXGbv7XsnI_NgCASyjQHffkfuwI&amp;_nc_zt=23&amp;_nc_ht=scontent-det1-1.xx&amp;oh=03_Q7cD2wHgEfxZ_DhA4r_l5dbTGp0wtkP-S7JD2VTIMqiokJuF8A&amp;oe=68A29A06" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1500" height="2000"><figcaption><span style="white-space: pre-wrap;">Bona sealer going down</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczPZKBNyO4Lkv7ph56KttP8RJnzUdmyXNuZ6WlXRv3FHvoMEwDsli026OXrXWdqVLTL3v7xeBwE3nIfJVusuJfyPmcnr13GVw83i0-akOjtlWsjjIpEGvyfOJ_GBsicpbLPL68wK-1htP04sWHeoyNwBcA=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">Bona top coat of traffic complete</span></figcaption></figure><p>With the end in site, I picked up a bunch of high grade pine boards and cut, sanded, stained, and installed them. I trimmed out the closet door and hung a pine door there, stained to match. I also stained the pine window trim I installed earlier. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://scontent-det1-1.xx.fbcdn.net/v/t1.15752-9/519443860_725694213428190_880625348211214182_n.jpg?_nc_cat=108&amp;ccb=1-7&amp;_nc_sid=9f807c&amp;_nc_ohc=ixM1rL2mAI4Q7kNvwFS4fbq&amp;_nc_oc=AdlcVY-PfU4BlVGbsyOiKgGe24IhxUe7kqKOPmtAwchEDKloShvjogcQz3bolqrtSRM&amp;_nc_zt=23&amp;_nc_ht=scontent-det1-1.xx&amp;oh=03_Q7cD2wFQ1iu164T5DVFWBGxEMqish0ydSe9kRxflCp9wmmjijg&amp;oe=68A29357" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1500" height="2000"><figcaption><span style="white-space: pre-wrap;">Boards prepped for install</span></figcaption></figure><p>With that, the basic room was complete!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczO8EGtByOtSHJoRhOvyoxvf5-afssR160DABRyq3IXHkmeg3Qi8hNauNv5339pYjs-_52RxFxPAXKn4HBFGwX_pXw5hkgHWgYaPZQJJ2vxfdSY8l1ErqbNu_TPWUdSTzqU8xQpjiC0N252tkLjytSFi6w=w970-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="970" height="1462"><figcaption><span style="white-space: pre-wrap;">Voila</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/07/FB_IMG_1742042103795--2-.jpg" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="992" height="1462" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/07/FB_IMG_1742042103795--2-.jpg 600w, https://houndhillhomestead.com/content/images/2025/07/FB_IMG_1742042103795--2-.jpg 992w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Double voila</span></figcaption></figure><p>We picked up a large used sleeper-sectional. a few weeks later to provide seating + server as an auxiliary guest space - getting this up the stairs proved extremely difficult and took half the day + removing a portion of the stair door trim (I didn&apos;t measure and just assumed it would fit up the stairs - bad move). I also moved in my hobby work desk, ad old Hon that&apos;s traveled 3 states with us from my Dad&apos;s old office. </p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczPJvx7mEjxcx1yOE569PnqO4IVe47OAAE3zFi3XW5C9XfTTo7soiK-VSzXiO1KasZIFimWKp6qkCxpWKR9gGxmc1bfSJ0vQXqLBjrY77XXO4zq5Po772GbFO5JC2OfUrWK46cqBYtSm4mqyWZcdkAyoSg=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>For my work desk, I picked up a butcher block slab, cut it to size, stained + finished with polyurethane, and installed it on top of a <a href="https://amzn.to/3TJPbUd?ref=houndhillhomestead.com">dual motor standing desk frame</a> . I also added a whiteboard and a new chair with <a href="https://amzn.to/4lDYQba?ref=houndhillhomestead.com">polyurethane roller blade wheels</a> rather than a traditional floor mat. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczM8oNhuWbejGOO7NAJrKxYo4FT0hP3iioGWQ8gqPy3IySxqQu_Tqvgtho6yvreCf6dNP9of7eDERV_SkEh57dnF2fR5OnILpE58M8BVZK2qrdevqOkO_QmykN2-R0YljUaqcdTlWfO1A2Eu1kbQ2yPjZQ=w1950-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1950" height="1462"><figcaption><span style="white-space: pre-wrap;">Crisis central</span></figcaption></figure><p>During framing, next to the closet, I added blocking to support a TV mount. During drywalling, I added a recessed box with cat6 cables back to my network rack and an outlet, all in prep for perfectly fitting a 75&quot; TV with no visible cables. </p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/pw/AP1GczPEcy6VlsjhEpFqUhciYsG6-zZXCDhbcaniAYOvlGrLXdhRqFuZyY8InMCNvsMaObEiD6K6JCALS5mINkmIVPuzUtAw_4KAFGcY0DxOsmLPqrjDVyPGPHGFN1q6Wnx8B12I90T1cSbelUi_CzfFPpnTLw=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"></figure><p>Finally, with summer fast approaching and the moderate spring temperatures on their way out, I needed some HVAC. Like with the TV, during framing, I added blocking to support a minisplit head above the couch. I installed a 12k btu R410A Gree Sapphire. I followed the exact same process I did with my <a href="https://houndhillhomestead.com/first-minisplit-install/">first minisplit install</a>. This time around, with tariffs in place, the gree branded units were a little cheaper than the rebranded Alpine home air units so I opted to buy one of them from <a href="https://www.efireplacestore.com/gre-sap12hp230v1ao.html?campaignid=21726917466&amp;adgroupid=&amp;gad_source=1&amp;gbraid=0AAAAAD2VFXI85bI9pa5Wnybv3sU56KTZd&amp;gclid=CjwKCAjwwqfABhBcEiwAZJjC3nTVSKsrGlaleYe4LScjmZtYTPP4T82wv9hI6GXLazHbX-uDAi70ZRoCANwQAvD_BwE&amp;ref=houndhillhomestead.com">efireplacestore</a> instead. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/pw/AP1GczMPGeCySE4NcnNDJFF-Gz5eO8--UrR3h6mpkA5g-wcDlVEUM8W58jreZDvn8Au-oztc7YwN2c50xCNQ9DSbhwNdZSpS8STyUf1XLAg7hIBNH52mS5wMSCjP4_3MPW6oMphwmOK1Yl7_4TOIe_CX4KpZ_A=w1096-h1462-s-no-gm?authuser=0" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="1096" height="1462"><figcaption><span style="white-space: pre-wrap;">Interior head unit</span></figcaption></figure><p>Learning from my first install, I sunk the pad down into the ground a bit and installed plastic blocks underneath the unit, giving me enough room to fit all my tools on the service valves without cutting an access slot in the plastic pad. When I was finished I back filled the entire area with 1.5&quot; stone. Like my other unit, this is protected by the deck overhand. I had no issues with snow build up in front of the bedroom unit during the winter and plan to install at least one other minisplit in this location. I back filled this entire area with 1.5&quot; stone. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://scontent-det1-1.xx.fbcdn.net/v/t1.15752-9/519656028_1652594342103821_6500693883581731912_n.jpg?_nc_cat=111&amp;ccb=1-7&amp;_nc_sid=9f807c&amp;_nc_ohc=YuMtEMph1ckQ7kNvwF3CGi7&amp;_nc_oc=Adl62VGBYRlVR7zeKAbEeyXUPC4c-0sDKzPdLR037mLQh9GWoTtjsnPFu3BQP9WB0Dk&amp;_nc_zt=23&amp;_nc_ht=scontent-det1-1.xx&amp;oh=03_Q7cD2wHKegf5MQzPvOFedPSBUb2yaTOIY20HLTx_Z1Mto3r6fQ&amp;oe=68A272E8" class="kg-image" alt="Winter Project - Attic office" loading="lazy" width="978" height="1920"><figcaption><span style="white-space: pre-wrap;">Compressor going in right alongside my existing 12k btu unit</span></figcaption></figure><p>This was an immense, multi-craft project that took many months to complete but added significant, quality square footage to our home. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Google Gemini powered Coop Presence/Door Control]]></title><description><![CDATA[<p>I&apos;ve <a href="https://houndhillhomestead.com/coop-improvements/">written previously</a> about our two coops and the automatic doors we use on them - on our large chicken coop, we use an <a href="https://amzn.to/3FBSEAr?ref=houndhillhomestead.com">Omlet door</a> and on the goose coop we use a larger <a href="https://amzn.to/3RlU2cO?ref=houndhillhomestead.com">Ador turkey door</a>. I have both of these integrated with home assistant, the</p>]]></description><link>https://houndhillhomestead.com/google-gemini-powered-goose-coop-door/</link><guid isPermaLink="false">67e35ce67e2ef70355d86291</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Wed, 26 Mar 2025 03:39:20 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/03/occupancy-sensors.png" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/03/occupancy-sensors.png" alt="Google Gemini powered Coop Presence/Door Control"><p>I&apos;ve <a href="https://houndhillhomestead.com/coop-improvements/">written previously</a> about our two coops and the automatic doors we use on them - on our large chicken coop, we use an <a href="https://amzn.to/3FBSEAr?ref=houndhillhomestead.com">Omlet door</a> and on the goose coop we use a larger <a href="https://amzn.to/3RlU2cO?ref=houndhillhomestead.com">Ador turkey door</a>. I have both of these integrated with home assistant, the Omlet door via the omlet API and the Ador via a relay board attached to an esp8266 running ESPHome. For the past 6 months or so, I&apos;ve had these on simple time based automations, closing the coop doors after dark and opening around sunrise. This works very well for the chickens, who reliably return to the coop with the sun, but the geese tend to be more finicky. They will come and go throughout the evening, often getting locked out of the coop when the door finally closes. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/goose_coop_snap_2-1.jpg" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1920" height="1080" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/goose_coop_snap_2-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/goose_coop_snap_2-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/goose_coop_snap_2-1.jpg 1600w, https://houndhillhomestead.com/content/images/2025/03/goose_coop_snap_2-1.jpg 1920w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Geese asleep at night</span></figcaption></figure><p>Inspired by this <a href="https://www.reddit.com/r/homeassistant/comments/1cwsnlq/taking_the_google_generative_ai_addon_to_the_next/?ref=houndhillhomestead.com">reddit post</a>, I figured a better approach would be to pipe an image to Google Gemini asking it if the geese and turkey were in the coop, and then shut the door if that was the case.  I already had a <a href="https://houndhillhomestead.com/using-wyze-cam-v3s-with-frigate/">wz_mini_hacks flashed wyze camera</a> inside capturing the entire coop - I took a quick snapshot from it and passed it to gemini flash 2.0 in the web GUI. The couple of examples I passed (both with birds inside and birds not inside) all worked. It seemed like this would be feasible!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/image-2.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="1203" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-2.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-2.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-2.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-2.png 2360w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">No birds inside under good lighting</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/image-8.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="1236" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-8.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-8.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-8.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-8.png 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Birds inside at night under IR lighting</span></figcaption></figure><p>First, I installed the <a href="https://www.home-assistant.io/integrations/google_generative_ai_conversation/?ref=houndhillhomestead.com">Google Generative AI integration</a> and created an API key to use it per the docs. </p><p>I broke the project into a couple of steps - first, I built a script to capture an image from the camera inside the coop. The &quot;goose coop&quot; target is from my frigate integration. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-3.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="871" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-3.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-3.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-3.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/03/image-3.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Next, I built the main automation. Every 5 minutes between 7PM and 11PM, and if the door is still open, I capture an image from the inside coop camera, ask Gemini if the geese and turkey are inside, and act on its response accordingly. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-5.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="1192" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-5.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-5.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-5.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/03/image-5.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Breaking it down, the first portion just calls the capture image script described above and delays for 5s to make sure the image is written to disk and ready to be sent to Gemini.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-6.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1746" height="864" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-6.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-6.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-6.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-6.png 1746w" sizes="(min-width: 720px) 720px"></figure><p>Next, I use the Google GenAI &quot;Generate Content&quot; action, passing the path to the image as an attachment and using the prompt in the image below. I store gemini&apos;s response in the &quot;goose_response&quot; variable.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/image-9.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1702" height="1110" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-9.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-9.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-9.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-9.png 1702w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ask gemini if the birds are inside</span></figcaption></figure><p>Next, I created an &quot;input text&quot; helper called goose_response to store Gemini&apos;s response and set the helper to the response from the previous step. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/image-11.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="90" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-11.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-11.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-11.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/03/image-11.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Helper variable</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/image-10.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1686" height="554" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-10.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-10.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-10.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-10.png 1686w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Setting the helper to Gemini&apos;s reponse</span></figcaption></figure><p>The final step is a conditional check to see if the response was &quot;birds inside&quot;. If so, I call a switch - turn off action to shut the relay that controls my door (an ESPHome device) and then notify our phones that the door has shut. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-12.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1822" height="972" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-12.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-12.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-12.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-12.png 1822w" sizes="(min-width: 720px) 720px"></figure><p>As I wrote this up, I realized I could expand on this and create true coop presence sensors by asking Gemini to count the number of birds in each image. I created a new automation to do just that, taking a picture every 5 minutes from both coop&apos;s interior cameras, counting the birds, and setting an input_number helper for each coop. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-13.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="2000" height="1196" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-13.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-13.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-13.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/03/image-13.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>This was effectively copy paste from the door automation, with the exception of changing the prompt (to request a count and a response with only a number), and having to cast the text response from Gemini to an integer to match the input_number helper data type. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/image-14.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1614" height="524" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/image-14.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/image-14.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/image-14.png 1600w, https://houndhillhomestead.com/content/images/2025/03/image-14.png 1614w" sizes="(min-width: 720px) 720px"></figure><p>I added both occupancy numbers to my coop cards in the lovelace UI:</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2025/03/occupancy-sensors-1.png" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="862" height="686" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/occupancy-sensors-1.png 600w, https://houndhillhomestead.com/content/images/2025/03/occupancy-sensors-1.png 862w" sizes="(min-width: 720px) 720px"></figure><p>As I wrote this, Gemini was within 1 bird of being 100% accurate in both coops - in the goose coop, the missing bird is off camera and in the chicken coop, heavily obscured. I was pleasantly surprised at it&apos;s accuracy. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/03/chicken_coop_count.jpeg" class="kg-image" alt="Google Gemini powered Coop Presence/Door Control" loading="lazy" width="1920" height="1080" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/03/chicken_coop_count.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/03/chicken_coop_count.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/03/chicken_coop_count.jpeg 1600w, https://houndhillhomestead.com/content/images/2025/03/chicken_coop_count.jpeg 1920w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Image used to produce above occupancy count</span></figcaption></figure><p>The free tier gemini rate limit is very generous (15 requests per minute as of now) and should easily support even a significant expansion on this use case.</p><p>Occupancy sensors open up a whole new world of automation types - off the top of my head, I will likely automate the coop interior lights in the same manner<a href="https://houndhillhomestead.com/bathroom-automation-with-the-aqara/"> I use Aqara mmwave radar sensors in the house. </a></p><p>Full yaml for everything discussed below:</p><p>Coop count automation:</p><pre><code>alias: Gemini - Coop Occupancy Count
description: &quot;&quot;
triggers:
  - trigger: time_pattern
    minutes: /5
conditions: []
actions:
  - action: script.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: script.take_snapshot_from_goose_coop_camera
  - action: script.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: script.take_snapshot_from_chicken_coop_camera
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - action: google_generative_ai_conversation.generate_content
    metadata: {}
    data:
      prompt: &gt;+
        This is the inside of my goose coop. How many birds (chickens, geese,
        and ducks) are inside the coop?


        Respond only with a number.

      filenames:
        - /config/tmp/goose_coop_snap.jpg
    response_variable: goose_response
  - action: input_number.set_value
    metadata: {}
    data:
      value: &quot;{{goose_response.text | int}}&quot;
    target:
      entity_id: input_number.goose_coop_occupancy_count
  - action: google_generative_ai_conversation.generate_content
    metadata: {}
    data:
      prompt: &gt;+
        This is the inside of my chicken coop. How many birds (chickens, geese,
        and ducks) are inside the coop?


        Respond only with a number.

      filenames:
        - /config/tmp/chicken_coop_snap.jpg
    response_variable: chicken_response
  - action: input_number.set_value
    metadata: {}
    data:
      value: &quot;{{chicken_response.text | int}}&quot;
    target:
      entity_id: input_number.chicken_coop_occupancy_count
mode: single
</code></pre><p>Door closing automation:</p><pre><code>alias: Goose Coop - Gemini check
description: &quot;&quot;
triggers:
  - trigger: time_pattern
    minutes: /5
conditions:
  - condition: time
    after: &quot;19:00:00&quot;
    before: &quot;23:00:00&quot;
  - condition: state
    entity_id: switch.goose_coop_door_ador_channel_b
    state: &quot;on&quot;
actions:
  - action: script.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: script.take_snapshot_from_goose_coop_camera
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - action: google_generative_ai_conversation.generate_content
    metadata: {}
    data:
      prompt: &gt;+
        I am trying to decide whether or not to close my goose coop. 3 geese and
        1 turkey live in this coop. The geese all look similar and are african
        geese with gray tones. The turkey is larger and all white.


        If there are at least 2 geese and one turkey in this image,  say: &quot;Birds
        inside&quot;


        Otherwise, or if you are unsure, say&quot;Birds not inside&quot;. 



        Use only one of these two exact sentences.

      filenames:
        - /config/tmp/goose_coop_snap.jpg
    response_variable: goose_response
  - action: input_text.set_value
    metadata: {}
    data:
      value: &quot;{{goose_response.text}}&quot;
    target:
      entity_id: input_text.goose_coop_response
  - if:
      - condition: state
        entity_id: input_text.goose_coop_response
        state: Birds inside
    then:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.goose_coop_door_ador_channel_b
      - action: notify.mobile_app_jay_s24
        metadata: {}
        data:
          message: Goose coop door closed
      - action: notify.mobile_app_sm_s928u
        metadata: {}
        data:
          message: Goose coop door closed
mode: single
</code></pre><p>Capture image from camera script: </p><pre><code>sequence:
  - action: camera.snapshot
    target:
      entity_id: camera.goose_coop
    data:
      filename: /config/tmp/goose_coop_snap.jpg
alias: Take snapshot from goose coop camera
description: &quot;&quot;
</code></pre>]]></content:encoded></item><item><title><![CDATA[BMW 335d NHK V Bi-LED Retrofit]]></title><description><![CDATA[<p>Living in a rural area with lots short days in the winter, bright headlights are a necessity for comfortable driving. My 2011 BMW 335d headlights came with factory adaptive bi-xenons, but they&apos;d become fairly dim over the past few years. 2 years ago I refinished the hazy outer</p>]]></description><link>https://houndhillhomestead.com/bmw-335d-nhk/</link><guid isPermaLink="false">67c114a77e2ef70355d861cb</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Fri, 28 Feb 2025 03:37:53 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2025/02/finished-driver-side-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2025/02/finished-driver-side-2.jpg" alt="BMW 335d NHK V Bi-LED Retrofit"><p>Living in a rural area with lots short days in the winter, bright headlights are a necessity for comfortable driving. My 2011 BMW 335d headlights came with factory adaptive bi-xenons, but they&apos;d become fairly dim over the past few years. 2 years ago I refinished the hazy outer plastic housing with a <a href="I have been a headlight enthusiast since high school. " rel="noreferrer">2 stage clear coat</a> and replaced the bulbs with fresh <a href="https://amzn.to/41BdN6n?ref=houndhillhomestead.com" rel="noreferrer">Phillips D1S</a>, but the lighting still wasn&apos;t great.</p><p>I figured the projector bowls were burned out from 14 years of use, but as I dove further into the OEM BMW modules I learned they were also sort of a poor design. BMW&apos;s AFS system on the 3 series moves the headlights vertically and horizontally as you turn the steering wheel to improve lighting around corners, but it does so by  shifting the headlight lens in relation to the projector bowl rather than shifting the entire projector assembly, at least in the horizontal direction. Optically, this is far from optimal. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/oem_projector.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/oem_projector.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/oem_projector.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/oem_projector.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/oem_projector.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">OEM projector - lens moves in relation to headlight bowl, making for subpar optics</span></figcaption></figure><p>The solution was a full blown projector retrofit, replacing the OEM units with higher performance aftermarket projectors. I found these awesome <a href="https://lightwerkz.net/products/bmw-e90-lci-afs-to-g5-brackets?srsltid=AfmBOoqTS0mw3FmkE-roh685SqvEOSi3nm-cSpYbny1FlG_4nBtb_djO&amp;ref=houndhillhomestead.com">ZKW AFS to standard G5 projector mounting brackets</a> from lightwerkz. These allow you to mount a G5 pattern projector to the existing AFS brackets, retaining full motion vertically and horizontally. Even better than that, the entire projector assembly pivots with these brackets, so the lens to bowl distance is fixed, eliminating the OEM design flaw.</p><p>I&apos;ve been a headlight enthusiast since high school and have installed various grades of pure chinesium to slightly nicer morimoto bi xenon projectors in the past. This time around Bi-LED units had become more affordable and competitive with the best HID projectors. At the time I was shopping, black friday of 2023, Morimoto and NHK made the best units in the game. NHK had two units available, the NHK IV and V. The V had slightly better low beam performance, but the NHK IV had better high beam performance thanks to a second supplementary led chip for the high beam. On my X5, I have a <a href="https://amzn.to/3ERMAmL?ref=houndhillhomestead.com">Diode Dynamics 18&quot; driving pattern light bar</a> for auxiliary high beams, but I had no such plans on the car so I ordered the IV for its superior high beam output (it was a little cheaper than the V too). Both of these units have since been superseded by the <a href="https://lightwerkz.net/products/nhk-m5-plus-bi-led-projectors-lhd?srsltid=AfmBOop34AML0enhJMJziYnJILjlJPWVFEaNHmBikUbKBPOV33dqPvm6&amp;ref=houndhillhomestead.com">NHK M5</a>.</p><p>As we moved 1000 miles, these ended sitting on a shelf for a year before I finally recently got around to installing them. I opened the box to find I&apos;d actually been shipped an NHK V pair. </p><p>The first order of business was to pull the headlights from the car. I followed <a href="https://www.youtube.com/watch?v=63sUkTBH2Cg&amp;vl=en&amp;ref=houndhillhomestead.com">this video</a>, pulling the bumper and removing the entire headlight assembly. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/20241107_111248--1-.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/20241107_111248--1-.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/20241107_111248--1-.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/20241107_111248--1-.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/20241107_111248--1-.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Bumper removed - couple of more bolts to pull the headlight assemblies</span></figcaption></figure><p>With the headlights out, it was time to open up the covers. This era BMW uses permaseal to seal the lens to the housing, which is extremely difficult to remove even with heat. Rather than spend hours with a heat gun or baking the fixtures in the oven like I had on retrofits in the past, I opted to cut around the perimeter of the headlight with a dremel. I read an ultrasonic cutter would be a better tool but the dremel worked fine and didn&apos;t make too much of a mess. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/cutting-headlight.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/cutting-headlight.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/cutting-headlight.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/cutting-headlight.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/cutting-headlight.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Lens cover cut</span></figcaption></figure><p>With the lens off, I could finally get to work. I removed the chrome shrouds, angel eyes, and plastic surround trim, exposing the OEM projector and AFS system. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/20241107_224237.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/20241107_224237.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/20241107_224237.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/20241107_224237.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/20241107_224237.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">OEM Units with shrouds removed</span></figcaption></figure><p>I pulled the ZKW units off their mount and installed the lightwerkz bracket in its place, then mounted the NHK V to the new bracket. This all went on very straightforward. On one of the two headlights, the square plastic peg on the top right of the bracket in the below photo was loose in the bracket so I ended up using a little bit of JB Weld to ensure it would stay in place. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/ngk-mounted.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="1500" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/ngk-mounted.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/ngk-mounted.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/ngk-mounted.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/ngk-mounted.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">NHK unit mounted to new brackets</span></figcaption></figure><p>With the shrouds off and all the wiring exposed, I took the units back outside, plugged them into the car, and probed with a multimeter for the high beam signal and switched +12V to the OEM HID ballasts. I cut the wiring inside the headlight housing that goes between the main plug on the back of the headlight and the ballast and rerouted it over to the 12V supply for the NHKs. I repeated this for the high beam signal, tying to the new projector solenoid wires. I left the now electrically disconnected OEM ballasts mounted to the outside of the headlight for a clean, original look. From the outside, nothing changed from a wiring perspective.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/20241107_180750-1.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/20241107_180750-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/20241107_180750-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/20241107_180750-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/20241107_180750-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Wiring up the NHK</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/back-of-driver-1.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/back-of-driver-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/back-of-driver-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/back-of-driver-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/back-of-driver-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Wiring completed and cleaned up</span></figcaption></figure><p>With the new projectors installed and the wiring complete, I took the open units back out to the car and plugged them in - everything worked as intended. The shrouds didn&apos;t mount on to the new projectors so I ground off their original mounting posts and affixed them with epoxy to the new NHK projectors. Some of the chrome flaked off while I was handling the shrouds (this stuff is extremely sensitive - use gloves!) so I scuffed them with sandpaper and hit them with some high temp black paint. I think the black look looks a little cleaner anyway. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/IMG-20241108-WA0001.jpeg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="1044" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/IMG-20241108-WA0001.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/IMG-20241108-WA0001.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/IMG-20241108-WA0001.jpeg 1600w, https://houndhillhomestead.com/content/images/2025/02/IMG-20241108-WA0001.jpeg 2052w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Shroud painted black - angel eyes reinstalled</span></figcaption></figure><p>Next, I had to reattach the headlight lens to the housings. I used an old soldering iron to plastic weld them back in place, first tacking a few spots to hold everything in place and then going around the entire housing. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/IMG-20241108-WA0009.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="1026" height="1824" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/IMG-20241108-WA0009.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/IMG-20241108-WA0009.jpg 1000w, https://houndhillhomestead.com/content/images/2025/02/IMG-20241108-WA0009.jpg 1026w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Plastic welded around entire perimeter</span></figcaption></figure><p>To ensure a watertight seal, I covered the plastic welded areas with a bead of <a href="https://amzn.to/3QEtZNE?ref=houndhillhomestead.com">permatex 81173 adhesive sealant</a>. </p><p></p><p>I reinstalled the units in the car - with the hood closed, none of the cut/repaired area of the lens could be seen. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/finished-driver-side-1.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/finished-driver-side-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/finished-driver-side-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/finished-driver-side-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/finished-driver-side-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Installed drivers side unit - RTV bead can be seen on top left with hood popped</span></figcaption></figure><p>Finally, some output shots! I rough aimed the headlights and took them for a test drive. They were orders of magnitude better than the OEM units and much to my surprise, the high beams, despite missing the supplemental LED of the NHK IV, were unbelievably good too. Lights stayed bright throughout corners. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/output-shot.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/output-shot.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/output-shot.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/output-shot.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/output-shot.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Initial low beam output while working on aiming</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2025/02/high-beam-output.jpg" class="kg-image" alt="BMW 335d NHK V Bi-LED Retrofit" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2025/02/high-beam-output.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2025/02/high-beam-output.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2025/02/high-beam-output.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2025/02/high-beam-output.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Quick high beam sample shot</span></figcaption></figure><p>Despite the high time commitment, this was one of my favorite upgrades to the 335d. </p>]]></content:encoded></item><item><title><![CDATA[My RTL_433 Setup]]></title><description><![CDATA[<p>In my ever expanding home automation quest, I&apos;ve amassed a small suite of 433mhz sensors - I opt for hardwired esphome/other wifi type iot sensors and controllers whenever I can (easy to troubleshoot, no batteries) but there are lower criticality areas I&apos;d like to monitor</p>]]></description><link>https://houndhillhomestead.com/rtl433-setup/</link><guid isPermaLink="false">6770ae55dc8b391db1ac1a98</guid><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Mon, 30 Dec 2024 03:25:52 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2024/12/rtl433.png" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2024/12/rtl433.png" alt="My RTL_433 Setup"><p>In my ever expanding home automation quest, I&apos;ve amassed a small suite of 433mhz sensors - I opt for hardwired esphome/other wifi type iot sensors and controllers whenever I can (easy to troubleshoot, no batteries) but there are lower criticality areas I&apos;d like to monitor without power nearby. This is where 433mhz sensors really shine - they are simple, often very cheap, and have long runtimes on battery (up to a year).</p><p>In this writeup I&apos;ll be going through my setup in detail, from the raw &quot;hub&quot; and sensors to my specific use cases and automations for each of them. </p><p>As of right now, I am using...</p><ul><li><a href="https://amzn.to/4gAMiyF?ref=houndhillhomestead.com">Nooelec SDR</a> - the &quot;hub&quot; plugged into my server</li><li><a href="https://amzn.to/4gpFy6J?ref=houndhillhomestead.com">Acurite 986 </a>- Monitor fridge/freezer temperatures</li><li><a href="https://amzn.to/3PhBAkw?ref=houndhillhomestead.com">Acurite 06002M</a> - Room temperature/humidity</li><li><a href="https://amzn.to/4gvbXcf?ref=houndhillhomestead.com">Govee Water Leak Detectors</a> - Installed around well pressure tank, water heaters, all toilets, sinks, and fridge</li><li><a href="https://amzn.to/3DCUTlV?ref=houndhillhomestead.com">Ecowitt WS90 weather station</a> - outdoor temp/wind/sunlight/rainfall/etc.</li><li><a href="https://amzn.to/3ZNM1Ba?ref=houndhillhomestead.com">Ecowitt WH51 </a>- Soil moisture sensor</li><li>TPMS sensors - Tire pressure sensors on vehicles</li></ul><p>The hardware heart of this setup is an RTL-SDR, a little software defined radio that can pickup signals anywhere in the 27MHz-1700MHz range. I&apos;m using a <a href="https://www.amazon.com/gp/product/B008S7AVTC/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;psc=1&amp;ref=houndhillhomestead.com">Nooelec unit</a>, based on the realtek RTL2832U&#xA0;chipset. There are many different units all <a href="https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/?ref=houndhillhomestead.com">based on this particular chipset</a> that are highly recommended - I have been running this Nooelec unit 24/7 for over 2 years without issue. I have it plugged in via a USB hub to my large proxmox host, passed through via usb to my home assistant VM. </p><p>The software heart of the setup is rtl_433, a nice software package that decodes data from over 200 common sensors in the 315MHz, 433MHz, 915MHz, and several other frequencies. Github user deviantintegral <a href="https://github.com/pbkhrv/rtl_433-hass-addons/tree/main/rtl_433?ref=houndhillhomestead.com">wrapped RTL433 into a home assistant add on</a>, and this is how I run it. This add on uses the realtek hardware radio to listen for the devices and then outputs the data to an MQTT server. For MQTT broker duties, I run <a href="https://github.com/home-assistant/addons/tree/master/mosquitto?ref=houndhillhomestead.com">mosquitto</a> as a home assistant add-on. </p><p>I also run deviantintegral&apos;s <a href="https://github.com/pbkhrv/rtl_433-hass-addons/tree/main/rtl_433_mqtt_autodiscovery?ref=houndhillhomestead.com">rtl433-mqtt-autodiscovery add on</a> - this connects to the MQTT broker and creates home assistant entities for most devices that rtl_433 picks up. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-11.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="1010" height="298" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-11.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-11.png 1000w, https://houndhillhomestead.com/content/images/2024/12/image-11.png 1010w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Mosquitto, RTL_433, and RTL_433 MQTT Auto Discovery Add ons</span></figcaption></figure><p>The rtl433 add on repository provides two options - regular rtl_433, based on a stable build of rtl_433 from mid 2023, and and rtl_433 (next), based on the latest build. There have been ~ 60 protocols for devices added to rtl_433 in the past year, some of which I&apos;m interested in (BMW TPMS sensors!) so I run the &quot;next&quot; variant. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-12.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="1688" height="524" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-12.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-12.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/image-12.png 1600w, https://houndhillhomestead.com/content/images/2024/12/image-12.png 1688w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Defining rtl_433 conf file location in the add on configuration</span></figcaption></figure><p>Initial configuration of the add on is fairly simple - you create an rtl_433.conf file, choose how you want to output the data (MQTT server), and choose which protocols you&apos;d like to listen for, and which frequencies you want to listen on (not all protocols supported by rtl433 are at 433MHz). I started with the <a href="https://github.com/merbanan/rtl_433/blob/master/conf/rtl_433.example.conf?ref=houndhillhomestead.com">example.conf file in the rtl433 docs</a> and made edits from there. I chose to enable all protocols (we live in the woods far from other homes) - if you lived in an urban area you may want to pair this down by commenting out protocols you don&apos;t plan on using. </p><p>Below I&apos;ve included the relevant portions I modified. </p><p>Output:</p><figure class="kg-card kg-code-card"><pre><code>output mqtt://x.x.x.x:1883,user=xxx,pass=xxxxxx,retain=1,devices=rtl_433/17069798-rtl433/devices[/type][/model][/subtype][/channel][/id],events=rtl_433/17069798-rtl433/events,states=rtl_433/17069798-rtl433/states</code></pre><figcaption><p><span style="white-space: pre-wrap;">Output line, sending data to my mqtt broker (mosquitto, running as a home assistant add-on) - I have modified the output of the &quot;next&quot; add on to match the original - when I switched, this kept the same topic names, as mentioned here: </span><a href="https://github.com/pbkhrv/rtl_433-hass-addons/blob/main/rtl_433-next/README.md?ref=houndhillhomestead.com"><span style="white-space: pre-wrap;">https://github.com/pbkhrv/rtl_433-hass-addons/blob/main/rtl_433-next/README.md</span></a></p></figcaption></figure><p>Frequency:</p><figure class="kg-card kg-code-card"><pre><code># as command line option:
#   [-f &lt;frequency&gt;] [-f...] Receive frequency(s) (default: 433920000 Hz)
# default is &quot;433.92M&quot;, other reasonable values are 315M, 345M, 915M and 868M
frequency     433.92M
frequency     315M
frequency     915M
</code></pre><figcaption><p><span style="white-space: pre-wrap;">Including all 3 frequencies of the sensors I&apos;m interested in - 915M to pickup my soil moisture sensor + weather station and 315M to try and pickup TPMS sensors</span></p></figcaption></figure><p>Hop interval:</p><figure class="kg-card kg-code-card"><pre><code># as command line option:
#   [-H &lt;seconds&gt;] Hop interval for polling of multiple frequencies (default: 600 seconds)
# default is &quot;600&quot; seconds, only used when multiple frequencies are given
hop_interval  30</code></pre><figcaption><p><span style="white-space: pre-wrap;">This option rotates through each of the 3 frequencies I&apos;m listening on every 30s</span></p></figcaption></figure><p>Typically, to setup a device for the first time, I confirm I have it on the list of devices to listen for in my rtl_433.conf (almost always do as I have almost all protocols enabled). Then, I fire up <a href="https://mqtt-explorer.com/?ref=houndhillhomestead.com">mqtt explorer</a>, connect to mosquitto, and watch for my new device. These devices usually have semi-unique IDs - I take and write this ID on the device in sharpie for future reference. If I don&apos;t see the device here, I&apos;ll go into the rtl433 add on logs and make sure I&apos;m seeing data populate.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/20241228_231458.jpg" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/20241228_231458.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/20241228_231458.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/20241228_231458.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2024/12/20241228_231458.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">An acurite tower sensor with ID written on it - this one monitors my unconditioned attic space temperature (in the process of finishing it, want to make sure conditions are warm enough for mud/paint)</span></figcaption></figure><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/image-13.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="1174" height="720" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-13.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-13.png 1000w, https://houndhillhomestead.com/content/images/2024/12/image-13.png 1174w" sizes="(min-width: 720px) 720px"></figure><p>After that, I open home assistant, go to integrations -&gt; mqtt and search for the semi unique ID of the sensor I&apos;m looking for - usually, the rtl_433-autodiscovery add on has the sensor built and ready to use. I&apos;ll rename the individual entities to something human readable that describes their use case.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-14.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="1402" height="614" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-14.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-14.png 1000w, https://houndhillhomestead.com/content/images/2024/12/image-14.png 1402w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Sensor built in home assistant - renamed to &quot;upstairs&quot; humidity and temperature</span></figcaption></figure><p>That describes the majority of the technical setup - now, on to the use cases!</p><p><strong>Fridge and Freezer Acurite Sensors </strong></p><p>I monitor temperature in our fridge/freezer and a large upright freezer in the basement.  I have these displayed for a quick glance as badges under my &quot;kitchen&quot; entities card.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-15.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="772" height="463" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-15.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-15.png 772w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Kitchen fridge/freezer temperature</span></figcaption></figure><p>I have simple automations setup for each of these to send alerts to our phones if freezer temperature gets above 10F for 5 minutes or if fridge temperature gets above 40F for 5 minutes.</p><figure class="kg-card kg-code-card"><pre><code>alias: Basement Freezer Temperature Notification
description: &quot;&quot;
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.acurite_tower_a_3475_temperature
    for:
      hours: 0
      minutes: 5
      seconds: 0
    above: 10
conditions: []
actions:
  - action: notify.mobile_app_jay_s24
    metadata: {}
    data:
      message: Basement Freezer Hot
  - action: notify.mobile_app_sm_s928u
    metadata: {}
    data:
      message: Basement Freezer Hot
mode: single
</code></pre><figcaption><p><span style="white-space: pre-wrap;">Automation for my basement freezer</span></p></figcaption></figure><p><strong>Generic Acurite Temperature Sensors</strong></p><p>I use these to keep tabs on basement, attic, and chicken + goose coop temperature and humidity. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/image-16.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="766" height="70" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-16.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-16.png 766w" sizes="(min-width: 720px) 720px"></figure><p><strong>Ecowitt WS90 Weather Station</strong></p><p>Right now, I&apos;m actually using the ecowitt integration with the ecowitt GW2000 gateway to pickup data from my weather station, but the outdoor unit transmits at 915MHz and is picked up by my Noolec SDR. I may transition to using the MQTT entities instead at some point in the future.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-17.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="2000" height="1384" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-17.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-17.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/image-17.png 1600w, https://houndhillhomestead.com/content/images/2024/12/image-17.png 2052w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Ecowitt integration - the ws90 is an excellent little weather station</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-18.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="786" height="884" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-18.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-18.png 786w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">WS90 data in mqtt explorer, picked up by the noolec SDR</span></figcaption></figure><p><strong>Govee Leak Detectors</strong></p><p>These Govee leak detectors sit under all my sinks, toilets, and appliances that have water lines. I also have one under my well pump pressure tank - pretty much anywhere a water leak is likely to occur. I have a automation configured that sends an alert to our phones that a water leak is detected. These have an audible alarm so they are easy to find when you get that notification. A few weeks ago, we had 4&quot; of rain and I had mild flooding in my basement near the door (leaks under the seal, have some grading work to do) - the sensors alerted me right away.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/20241229_214455-1.jpg" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/20241229_214455-1.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/20241229_214455-1.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/20241229_214455-1.jpg 1600w, https://houndhillhomestead.com/content/images/size/w2400/2024/12/20241229_214455-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Govee leak detector underneath my well pressure tank</span></figcaption></figure><p>rtl_433_autodiscovery doesn&apos;t automatically create entities for these guys, so I had to build them out by defining binary sensors (leak on/off) in my home assistant configuration file. There are a couple of good write ups out there on setting this up and I forget which I copied but it <a href="https://www.kyleniewiada.org/blog/2021/10/affordable-water-leak-and-temp-monitoring/?ref=houndhillhomestead.com">may have been this one</a>.</p><figure class="kg-card kg-code-card"><pre><code>#Govee Leak Detectors
mqtt:
    binary_sensor:

    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13936/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13936_govee_water
      name: Guest Sink Right Water Leak
      value_template: &quot;{{value_json.event}}&quot;

    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/14178/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 14178_govee_water
      name: Furnace Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      
    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13485/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13485_govee_water
      name: Master Bath Sink Water Leak
      value_template: &quot;{{value_json.event}}&quot;

    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/14016/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 14016_govee_water
      name: Master Bath Toilet Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      
    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13937/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13937_govee_water
      name: Guest Bath Toilet Water Leak
      value_template: &quot;{{value_json.event}}&quot;

    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13491/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13491_govee_water
      name: Kitchen Sink Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      
    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13443/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13443_govee_water
      name: Washing Machine Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      

    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13559/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13559_govee_water
      name: Well Pump Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      
    - state_topic: &quot;rtl_433/17069798-rtl433/devices/Govee-Water/13936/event&quot;
      payload_on: &quot;Water Leak&quot;
      payload_off: &quot;Button Press&quot;
      device_class: moisture
      unique_id: 13946_govee_water
      name: Fridge Water Leak
      value_template: &quot;{{value_json.event}}&quot;
      
</code></pre><figcaption><p><span style="white-space: pre-wrap;">Home assistant conf file establishing binary sensors for each leak detector</span></p></figcaption></figure><figure class="kg-card kg-code-card"><pre><code>alias: Water leak notification
description: &quot;&quot;
triggers:
  - entity_id:
      - binary_sensor.washing_machine_water_leak
      - binary_sensor.guest_sink_left_water_leak
      - binary_sensor.kitchen_sink_water_leak
      - binary_sensor.well_pump_water_leak
      - binary_sensor.guest_sink_right_water_leak
      - sensor.guest_sink_left_water_leak_battery
      - binary_sensor.master_bath_sink_water_leak
      - binary_sensor.guest_bath_toilet_water_leak
      - binary_sensor.master_bath_toilet_water_leak
    to: &quot;on&quot;
    trigger: state
conditions: []
actions:
  - action: notify.mobile_app_sm_s928u
    metadata: {}
    data:
      message: Water Leak Detected
  - action: notify.mobile_app_jay_s24
    metadata: {}
    data:
      message: Water Leak Detected
mode: single
</code></pre><figcaption><p><span style="white-space: pre-wrap;">Water leak notification</span></p></figcaption></figure><p><strong>Soil Moisture</strong></p><p>We used this sensor to keep tabs on our garden when we lived in SC - it broadcasts at 915MHz. I had an esp8266 relay board setup to trigger garden hose valves that fed drip waterers in our raised beds. This was a great way to get feedback and adjust drip waterer runtime for optimal soil moisture. I packed it away when we moved and haven&apos;t set it up for our Maine garden but plan to next growing season. We were rushed and didn&apos;t have any sort of auxiliary watering system (plus a MUCH larger garden, visible from space on google maps), so it was up to the weather to keep our garden healthy this year.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-19.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="720" height="582" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-19.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-19.png 720w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Sensor as seen in mqtt explorer</span></figcaption></figure><p> </p><p>TPMS Sensors</p><p>I&apos;ve tried to pickup TPMS sensors from my two BMWs (support for gen3 and gen4/5 decoders has been added to RTL_433 in the past year) and Ford F250 - I&apos;ve gotten a couple of TPMS signals but they may be from guest vehicles. This is an active work in progress but monitoring pressures in home assistant would be a huge leg up over the vehicle - the TPMS system in the BMWs just indicates high/low and if one TPMS sensor is not functional, the TPMS light stays on and I get no readings on the dash. It&apos;s not clear to me exactly when TPMS sensors broadcast (may only be on a change in pressure or at a certain wheel speed). My SDR is in the basement so a weak transmit signal also may not reach the unit. When the weather gets warm again, I plan to take the SDR out with my laptop and do some more troubleshooting. <a href="https://r-c-y.net/posts/tpms/?ref=houndhillhomestead.com">This write up</a> inspired me. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-20.png" class="kg-image" alt="My RTL_433 Setup" loading="lazy" width="862" height="592" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-20.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-20.png 862w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Last TPMS reading</span></figcaption></figure><p>RF sensors with an SDR make a great complement to the more traditional zigbee/wifi sensors and will definitely have a place in my automation toolbelt moving forward. </p>]]></content:encoded></item><item><title><![CDATA[Woodstove Temperature Monitoring]]></title><description><![CDATA[<p>Wood burning season is in full swing and I have been on a quest to burn as efficiently as possible, both to conserve wood and prevent creosote buildup in the chimney flue. Our home has a 2008 era Hearthstone Heritage pre-catalyst EPA stove. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241204-WA0001.jpeg" class="kg-image" alt loading="lazy" width="2000" height="3556" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241204-WA0001.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241204-WA0001.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241204-WA0001.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241204-WA0001.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The hearthstone lighting up in the morning</span></figcaption></figure>]]></description><link>https://houndhillhomestead.com/woodstove-temperature-monitoring/</link><guid isPermaLink="false">675909a9dc8b391db1ac1977</guid><category><![CDATA[home assistant]]></category><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Thu, 12 Dec 2024 05:14:33 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2024/12/tempplot.png" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2024/12/tempplot.png" alt="Woodstove Temperature Monitoring"><p>Wood burning season is in full swing and I have been on a quest to burn as efficiently as possible, both to conserve wood and prevent creosote buildup in the chimney flue. Our home has a 2008 era Hearthstone Heritage pre-catalyst EPA stove. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241204-WA0001.jpeg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="2000" height="3556" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241204-WA0001.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241204-WA0001.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241204-WA0001.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241204-WA0001.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The hearthstone lighting up in the morning - pardon the mess!</span></figcaption></figure><p>The common approach to measuring wood stove temperature is a <a href="https://amzn.to/41uaMEZ?ref=houndhillhomestead.com">stove top thermometer</a>. These give a indication of how hot you&apos;re burning, but in the case of a stove filled with soapstone or other kinds of heat brick, lag significantly behind the action in the burn chamber. When you first light the stove, it takes quite awhile to get the entire assembly up to temperature and as the fire is cooling down, the stove assembly stays hot even as the fire begins to cool. From what I read, you want the entire chimney flue to be above 250F to prevent creosote formation. It seems like most people shoot for 400-500F in the pipe above the stove. </p><p>I wanted to directly measure two things as best I could - the firebox temperature and flue temperature at its coldest spot (top of the chimney). I haven&apos;t yet figured out a great way to get any kind of temperature sensing gear up on the roof (and my roof is very steep and icy right now) so I figured I&apos;d start with the easy one - firebox temperature. I didn&apos;t want to drill any holes or otherwise modify my hearthstone, so I opted to install a thermocouple in the flue pipe as close to the top of the stove as I could reasonably get.</p><p>Home assistant is the natural place to land this data. For parts for this project, I ordered...</p><ul><li><a href="https://amzn.to/3ZxImYk?ref=houndhillhomestead.com">K Type thermocouple</a></li><li> <a href="https://amzn.to/4iwreec?ref=houndhillhomestead.com">MAX6675 amplifier</a> for the thermocouple</li><li><a href="https://amzn.to/3ZKrgYv?ref=houndhillhomestead.com" rel="noreferrer">ESP8266 in WeMos D1 mini form factor</a></li><li><a href="https://amzn.to/41o4jeU?ref=houndhillhomestead.com">Rutland Stove Cement</a></li></ul><p>I had some PLA 3d printer filament and my modified <a href="https://amzn.to/4f9GOcF?ref=houndhillhomestead.com">Creality Ender 3</a> on hand to print an enclosure. I found a <a href="https://www.thingiverse.com/thing:5344234/comments?ref=houndhillhomestead.com">great model on thingiverse</a> that neatly contains the Wemos + max6675. </p><p>The first order of business was to assemble the D1 mini and test the max6675 + thermocouple setup. The max6675 reads temperature from the thermocouple and relays it to the ESP8266 via <a href="https://en.wikipedia.org/wiki/Serial_Peripheral_Interface?ref=houndhillhomestead.com">SPI</a>. I soldered pins onto the ESP8266 board and wired up the max6675 with some jumpers. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0006.jpeg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="2000" height="3556" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241106-WA0006.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241106-WA0006.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241106-WA0006.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0006.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Wemos Mini getting header pins</span></figcaption></figure><p>The max6675 has 5 pins that need to be connected - VCC (+3.3V), GND (ground), and 3 SPI pins (SCK, CS, and SO). I connected CS (chip select) to D8/GPIO15, SCK (clock) to D5/GPIO14, and SO to D6/GPIO12.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lastminuteengineers.com/wp-content/uploads/arduino/MAX6675-Breakout.jpg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="283" height="127"><figcaption><span style="white-space: pre-wrap;">Max6675 stock image, pins on right</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://community-assets.home-assistant.io/original/3X/6/a/6a396d66faa58b42936fd7a2b949f8c9478b83d5.png" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="715" height="362"><figcaption><span style="white-space: pre-wrap;">Wemos D1 mini pinout</span></figcaption></figure><p>Here&apos;s my entire esphome config for this board:</p><pre><code>esphome:
  name: woodstove-temp
  friendly_name: woodstove_temp

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: &quot;#####&quot;

ota:
  - platform: esphome
    password: &quot;#######&quot;

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: &quot;Woodstove-Temp Fallback Hotspot&quot;
    password: &quot;######&quot;

captive_portal:
    
spi:
  miso_pin: D6
  clk_pin: D5

sensor:
  - platform: max6675
    name: &quot;Wood Stove Flue Temperature&quot;
    cs_pin: D8
    update_interval: 15s</code></pre><p>With the board configured, flashed, and wired up, I fired up the esphome logs in home assistant to make sure I was getting valid values - all looked good. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0011.jpg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="1026" height="1824" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241106-WA0011.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241106-WA0011.jpg 1000w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0011.jpg 1026w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Reading ambient room temperature with the thermocouple</span></figcaption></figure><p>Next, I dusted off my ender 3 and <a href="https://www.thingiverse.com/thing:5344234/comments?ref=houndhillhomestead.com">printed this model</a>. I put the wemos d1 mini and max6675 in the box and left it wired with jumpers - everything fit nicely.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-6.png" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="694" height="676" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-6.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-6.png 694w"><figcaption><span style="white-space: pre-wrap;">Ender 3 mid print - hadn&apos;t been used in awhile and took some tuning to get bed level/print sticking to build plate, etc etc etc. You can see several failed print efforts in the foreground. I run fluidd on a raspberry pi4 for control with an aftermarket control board that supports dual Z axis motors, bltouch, etc. I&apos;ve also upgraded to a creality sprite pro direct drive extruder.</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0008.jpeg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="1832" height="1836" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241106-WA0008.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241106-WA0008.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241106-WA0008.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241106-WA0008.jpeg 1832w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Wemos d1 mini + max6675 in enclosure, thermocouple connected, microusb for power connected on other side</span></figcaption></figure><p>With all of the fun stuff out of the way, I removed the flue pipe right above my wood stove. I drilled a hole in the pipe, as close to the bottom as I could reasonably get, that I thought was the right size but ended up being a bit too big. In order to get the thermocouple to stay in place, I spot welded it to the flue pipe. I then sealed up around the penetration with Rutland stove cement.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/20241107_094246.jpg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/20241107_094246.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/20241107_094246.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/20241107_094246.jpg 1600w, https://houndhillhomestead.com/content/images/2024/12/20241107_094246.jpg 2000w" sizes="(min-width: 720px) 720px"></figure><p>I reinstalled the modified stove pipe in the wood stove. In the picture below, you can see I only left a couple of inches between the top of the stove and the thermocouple.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241108-WA0021.jpeg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="2000" height="3556" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241108-WA0021.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241108-WA0021.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241108-WA0021.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241108-WA0021.jpeg 2000w" sizes="(min-width: 720px) 720px"></figure><p>I chose this thermocouple with a long cable specifically so I could hide the 3d printed box out behind the chimney in the space between the chimney and the wall. I wanted to keep the control components as far from the stove as possible to protect them and the 3d printed case. From all angles but standing beside the stove and looking behind it, this is hidden, keeping WAF (wife approval factor) high. </p><p>In Home Assistant, I added wood stove temperature as a badge above my living room card, next to my oil furnace set point and current temperature for the living room zone. </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/image-9.png" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="768" height="272" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-9.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-9.png 768w" sizes="(min-width: 720px) 720px"></figure><p>Here&apos;s a trend from the last couple days of burning: </p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/image-10.png" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="2000" height="823" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-10.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-10.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/image-10.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2024/12/image-10.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>In practice, I usually let the stove get up to 500-550F degrees before shutting the primary air. It tends to rise up into the 600-700F range before slowly tapering off (although sometimes with very small, dry pieces of wood it&apos;ll reach ~800F briefly). This would be way too hot a few feet up in the stove pipe, but as I&apos;m effectively measuring firebox temperature, I think its fine. Visually the fires look no different than I&apos;ve been burning for a couple of years and my stove has suffered no damage.</p><p>I have a couple of notifications setup - one for stove reloading (temperature below 350F for 5 minutes) and one for overfire condition (temperature above 800F for 30s). I may tweak these as time goes on and I get a better feel for absolute temperature values.</p><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241212_000215_Delta.jpg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="1080" height="185" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/Screenshot_20241212_000215_Delta.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/Screenshot_20241212_000215_Delta.jpg 1000w, https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241212_000215_Delta.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241212_000412_Drive.jpg" class="kg-image" alt="Woodstove Temperature Monitoring" loading="lazy" width="1080" height="184" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/Screenshot_20241212_000412_Drive.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/Screenshot_20241212_000412_Drive.jpg 1000w, https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241212_000412_Drive.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Here&apos;s the overfire notification in its entirety: </p><pre><code>alias: Woodstove over fire
description: &quot;&quot;
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.woodstove_temp_living_room_temperature
    for:
      hours: 0
      minutes: 0
      seconds: 18
    above: 799.9
conditions: []
actions:
  - action: notify.mobile_app_jay_s24
    metadata: {}
    data:
      message: Overfire! - Wood stove over 800F
  - action: notify.mobile_app_sm_s928u
    metadata: {}
    data:
      message: Overfire! - Wood stove over 800F
mode: single
</code></pre><p>Moving forward, I&apos;d like to fab up a bracket to fix a linear actuator to the primary air controls below the front of the stove. That way, I could fully automate all but physically loading the stove.</p>]]></content:encoded></item><item><title><![CDATA[Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors]]></title><description><![CDATA[<p>This year I&apos;ve been expanding the electrical footprint in our home. I plan to begin a large solar install next year, so replacing our oil heat and propane appliances with electric has been high on my to do list. I added a circuit for our basement laundry, two</p>]]></description><link>https://houndhillhomestead.com/subpanel-install/</link><guid isPermaLink="false">6754fe92dc8b391db1ac1876</guid><category><![CDATA[home assistant]]></category><dc:creator><![CDATA[Jay]]></dc:creator><pubDate>Sun, 08 Dec 2024 05:05:01 GMT</pubDate><media:content url="https://houndhillhomestead.com/content/images/2024/12/20241126_194521--1--1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://houndhillhomestead.com/content/images/2024/12/20241126_194521--1--1.jpg" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors"><p>This year I&apos;ve been expanding the electrical footprint in our home. I plan to begin a large solar install next year, so replacing our oil heat and propane appliances with electric has been high on my to do list. I added a circuit for our basement laundry, two 20A circuits for our partially finished bonus room in the attic, <a href="https://houndhillhomestead.com/first-minisplit-install/">two minisplits</a>, a heat pump hot water heater, and a run out to our chicken and goose coops. In doing so, I maxed out the breaker space in my 32 space GE Powermark panel. We recently purchased an induction stove - the full main panel was in my way of installing it. </p><p>Since last year, I&apos;ve been monitoring my main breaker panel with an <a href="https://amzn.to/3BeIbJj?ref=houndhillhomestead.com" rel="noreferrer">Emporia Vue</a>, <a href="https://github.com/emporia-vue-local/esphome?ref=houndhillhomestead.com">flashed with esphome and integrated with Home Assistant</a>. The emporia only has 16 channels (+2 for your incoming conductors). Even though I&apos;m only monitoring one leg of my 240v circuits, I still couldn&apos;t monitor them all. There wasn&apos;t more space in the panel to add a second unit. A single bigger panel couldn&apos;t fit two units either. I decided to install a 100A subpanel next to my main panel. This would give me a lot of future flexibility, make space for the induction range, and allow me add a second <a href="https://amzn.to/4iqAjF5?ref=houndhillhomestead.com">emporia vue</a> to monitor every circuit in the house.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/IMG-20241123-WA0010--1-.jpeg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="2000" height="3556" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/IMG-20241123-WA0010--1-.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/IMG-20241123-WA0010--1-.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/IMG-20241123-WA0010--1-.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/IMG-20241123-WA0010--1-.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">New panel wiring in progress - moving circuits to new panel. Main panel was crammed - I cleaned both panels up significantly before closing them up</span></figcaption></figure><p>I bought a <a href="https://www.homedepot.com/p/GE-PowerMark-Gold-100-Amp-32-Space-32-Circuit-Indoor-Main-Breaker-Circuit-Breaker-Panel-TM3210CCUP/100116026?ref=houndhillhomestead.com" rel="noreferrer">GE Powermark gold 32 space main breaker panel</a>, 2/2/2/4 aluminum SER cable, <a href="https://amzn.to/41HSkcr?ref=houndhillhomestead.com">noalox</a>, and a <a href="https://amzn.to/4f62l6c?ref=houndhillhomestead.com">90A GE breaker</a>. First, I mounted the new subpanel on a piece of plywood. To prepare it to be a subpanel, I removed the neutral/ground bonding bar and installed the ground bonding screw. Back in the main panel, I removed my heat pump hot water heater circuit and installed the 90A breaker. I added lugs to the ground and neutral bars, landed the feeder cable in the main panel, and connected it to the sub panel. I used noalox on all aluminum connections. I moved 8 120v circuits over to the subpanel, reconnecting my heat pump hot water heater and leaving the major 240v loads in the main panel.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/20241126_194521--1-.jpg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="2000" height="2667" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/20241126_194521--1-.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/20241126_194521--1-.jpg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/20241126_194521--1-.jpg 1600w, https://houndhillhomestead.com/content/images/2024/12/20241126_194521--1-.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">New panel buttoned up</span></figcaption></figure><p>I opted to buy a used emporia vue2 on ebay rather than the new emporia vue3. The newer model has CTs with a better plug (can be cut to reduce the mess of cables like with the fixed length vue2 CTs), but appears to be trickier to connect for flashing esphome. I broke the new vue2 open and soldered serial headers on the board. Rather than use a dedicated usb to serial board, I used an <a href="https://ansonvandoren.com/posts/nodemcu-as-ftdi-bridge/?ref=houndhillhomestead.com" rel="noreferrer">esp8266 as a serial bridge</a>. After flashing esphome and installing the emporie-vue-local config, it was ready to be installed in the the new panel. I labeled each circuit on the panel and in home assistant by changing the circuit entities friendly names.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/Messenger_creation_537825415986487.jpeg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="1920" height="974" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/Messenger_creation_537825415986487.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/Messenger_creation_537825415986487.jpeg 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/Messenger_creation_537825415986487.jpeg 1600w, https://houndhillhomestead.com/content/images/2024/12/Messenger_creation_537825415986487.jpeg 1920w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Headers on emporia vue, esp8266 as serial bridge, esphome flashed and talking to home assistant</span></figcaption></figure><p>I took this opportunity to adjust my phase voltage calibration constant on both emporia units by measuring the voltage on each phase with a multimeter and calculating per the docs. I reflashed the emporia with the updated config. It had always been a couple of volts off on either phase, throwing my real time use slightly out of whack. </p><figure class="kg-card kg-code-card"><pre><code>sensor:
  - platform: emporia_vue
    i2c_id: i2c_a
    phases:
      - id: phase_a  # Verify that this specific phase/leg is connected to correct input wire color on device listed below
        input: BLACK  # Vue device wire color
        calibration: 0.02266  # 0.022 is used as the default as starting point but may need adjusted to ensure accuracy
        # To calculate new calibration value use the formula &lt;in-use calibration value&gt; * &lt;accurate voltage&gt; / &lt;reporting voltage&gt;</code></pre><figcaption><p><span style="white-space: pre-wrap;">emporia config - phase voltage calibration</span></p></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-5.png" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="1016" height="1156" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-5.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-5.png 1000w, https://houndhillhomestead.com/content/images/2024/12/image-5.png 1016w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Quick summary page for all circuits monitored by the emporia units</span></figcaption></figure><p>Monitoring every circuit in the house has let me set up some additional soft sensors in home assistant:</p><p><strong>Washer and Dryer Status:</strong></p><ul><li>My dryer and washer are both on a dedicated circuit in the basement. I set up a &quot;helper&quot; that creates a template binary sensor for each - if washer or dryer circuit statuses are over 100w, the state is &quot;on&quot;, otherwise off. I have an automation that sends our phones alerts when either changes from on to off, indicating the cycle is complete. </li></ul><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241207_230351_Home-Assistant.jpg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="1080" height="195" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/Screenshot_20241207_230351_Home-Assistant.jpg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/Screenshot_20241207_230351_Home-Assistant.jpg 1000w, https://houndhillhomestead.com/content/images/2024/12/Screenshot_20241207_230351_Home-Assistant.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-code-card"><pre><code>{{ states(&apos;sensor.circuit_10_power&apos;)|float &gt; 100}}</code></pre><figcaption><p><span style="white-space: pre-wrap;">Washer run status template binary sensor</span></p></figcaption></figure><p><strong>Oil Furnace State and Fuel Consumption:</strong></p><ul><li>Similar to the washer/dryer, my oil burner is also on dedicated circuit. I used the same concept to first create a binary state. </li><li>Because the burner is a fixed flow rate, I could use furnace state to accurately estimate real time consumption. I used the history stats integration looking at the binary state of the burner to create a &quot;boiler runtime today&quot; sensor.</li></ul><figure class="kg-card kg-code-card"><pre><code>sensor:
  - platform: history_stats
    name: Oil Burner Runtime Today
    entity_id: binary_sensor.oil_burner_state
    unique_id: biasi_b10_runtime
    state: &quot;on&quot;
    type: time
    start: &quot;{{ today_at() }}&quot;
    end: &quot;{{ now() }}&quot;
          </code></pre><figcaption><p><span style="white-space: pre-wrap;">Oil burner runtime, history stats integration configured manually in home assistant configuration.yaml</span></p></figcaption></figure><ul><li>I pulled the nozzle on my burner to determine its flow rate (0.85gph @ 100psi) and pulled up the spec sheet to determine flow at my pumps rated pressure (180psi). This turned out to be 1.12gph. I created a template sensor looking at the runtime sensor to calculate gallons of oil used. </li></ul><pre><code>{% set runtime_in_hours= states(&apos;sensor.oil_burner_runtime_today&apos;) | float %}

{% set gph_flow = 1.12 | float %}

{% set galused = (runtime_in_hours*gph_flow) | float %}


          {{ galused | float | round(3) }}</code></pre><ul><li>Finally, I used the cost of oil sensor I built in my <a href="https://houndhillhomestead.com/home-assistant-heating-season-calculations/">home assistant heating season calculation effort</a> and the gallons of oil used today to calculate dollars spent on oil today. </li></ul><pre><code>{% set oil_used= states(&apos;sensor.oil_burned_today&apos;) | float %}

{% set oil_cost = states(&apos;input_number.heating_oil_price&apos;) | float %}

{% set returnvalue= (oil_used*oil_cost) | float %}


          {{ returnvalue | float | round(3) }}</code></pre><ul><li>I added oil used today and dollars spent on oil today as badges on one of my sections&apos; header.</li></ul><figure class="kg-card kg-image-card"><img src="https://houndhillhomestead.com/content/images/2024/12/image-3.png" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="794" height="80" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-3.png 600w, https://houndhillhomestead.com/content/images/2024/12/image-3.png 794w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/image-4.png" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="2000" height="911" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/image-4.png 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/image-4.png 1000w, https://houndhillhomestead.com/content/images/size/w1600/2024/12/image-4.png 1600w, https://houndhillhomestead.com/content/images/size/w2400/2024/12/image-4.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Oil burner state and gallons used today on a graph for the past few days</span></figcaption></figure><p>As I mix heat sources this winter (minisplits, woodstove, and oil burner) and the economics of electricity and oil fluctuate, these numbers should help me quickly and easily optimize fuel costs.</p><p>Somewhere in there I remembered why I started this project and replaced our gas range with an induction range. I shut off the gas outside and capped the line in the event I ever decide to go back to gas. I ran 6/6/6/6 SER cable (much cheaper than the 8awg romex I was looking at at first) to a 4 conductor stove <a href="https://amzn.to/3OLOWW7?ref=houndhillhomestead.com">14-50R surface mount outlet</a> and then installed the range.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/received_1030672018862179-1.jpeg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="974" height="477" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/received_1030672018862179-1.jpeg 600w, https://houndhillhomestead.com/content/images/2024/12/received_1030672018862179-1.jpeg 974w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Gas capped off, new outlet installed</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://houndhillhomestead.com/content/images/2024/12/received_934946365177766.jpeg" class="kg-image" alt="Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors" loading="lazy" width="1500" height="2000" srcset="https://houndhillhomestead.com/content/images/size/w600/2024/12/received_934946365177766.jpeg 600w, https://houndhillhomestead.com/content/images/size/w1000/2024/12/received_934946365177766.jpeg 1000w, https://houndhillhomestead.com/content/images/2024/12/received_934946365177766.jpeg 1500w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Range installed</span></figcaption></figure><p>We&apos;ve enjoyed the range so far and I look forward to running it for free on solar power next year. </p>]]></content:encoded></item></channel></rss>