My Christmas Tree Tells me when it's Thirsty

December 4, 2021 10:46 pm

This year I cobbled together a water-level sensor for the Christmas-tree stand. For several years I've looked for such a sensor, but never found anything that could do the job. I've found water sensors, but they're designed to "trigger" when wet and often times emit an alarm. Other water sensors might have given me an acceptable wet/dry signal, but were built as a single unit which can't be submerged in the stand.

So I used a standard Zigbee door sensor to accomplish the task. I used this one by Third Reality. It uses 2 AAA batteries, which I preferred over a button battery model since I'll only use it for about a month each year and I can use rechargeable batteries.

The premise is to use a float which will fall into range of the sensor when the water level drops and rise up out of range when water is added. So when the sensor signals that it is "closed" that means the tree needs water.

This sensor is connected to my Home Assistant smart-home manager which I have running on a Raspberry Pi 3. It uses the Zigbee Home Automation integration which I'm using with a ConBee II dongle. I've been really happy with this set up so far, I've had zero issues pairing devices or keeping their connections active.

The sensor, as shown, is made up of two pieces. The actual electronics are in the left part and the piece on the right is just plastic housing around a magnet. I removed the magnet and hot-glued it to a Ping-Pong ball which acts as a float. I also cut a piece of a plastic straw and glued that to the Ping-Pong ball which will be the guide for the float. Using the rest of the straw I slit it length-wise which caused it to curl into itself just a little allowing the float-guide to slip over it and slide smoothly up and down.

I attached one more piece of straw to the float to prevent it from spinning (which would pull the magnet away from the sensor). Then I hot-glued the long piece of straw into the tree stand along one of the support posts, which are hollow.

I paired the sensor to my Home Assistant set up and then used some Velcro stickers to stick the sensor to the inside of the support post and then adjusted the height through trial and error to get the "dry" alert when I wanted it. I didn't want it to be actually dry because I wanted there to be a grace period from when it says, "I need water" before it actually goes dry.

I don't have a picture of this part because I got it set up and didn't take a picture and now the tree's in the stand and there's no way to see the bottom. Which also means there's no way to change the batteries while the tree is up. The manufacturer claims "up to 2 years" battery life, so getting a month shouldn't be a problem. The sensor also reports battery level, and it hasn't dropped a single percentage since I installed it.

Next I reconfigured the "device" in Home Assistant and told it to treat it as a "moisture sensor" instead of an "open/closed sensor." So now instead of saying "open/closed" in the user interface it says "wet/dry." I used the "Configuration -> Customizations" GUI to set this up:

The generated YAML (in customize.yaml):

binary_sensor.third_reality_inc_3rds17bz_XXXXXXXX_ias_zone:
device_class: moisture

And, finally, I added an "automation" which triggers when the sensor detects the magnet (indicating "dry") and uses the "call service" action to send an alert to my tablet and/or phone which says "I'm Thirsty." I used the "Configuration -> Automations" GUI to set this up:

The generated YAML:

alias: Notify when tree needs water
description: ''
trigger:
- type: not_moist
platform: device
device_id: 5bca35081c2232eaXXXXXXXXXXXXXXXX
entity_id: binary_sensor.third_reality_inc_3rds17bz_XXXXXXXX_ias_zone
domain: binary_sensor
for:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
condition: []
action:
- service: notify.mobile_app_kyle_s_tablet
data:
message: '"I''m Thirsty" --Tree'
mode: single

All of this is running entirely local to my own home. No Internet required, no external servers in the mix and I don't have to wonder whether some company will decide to shut down their systems and break all my stuff.

I am greatly amused by this set up, especially because it actually just worked with almost no fussing around. And now I'll be going about my day and get a notification on my tablet from my tree asking for water. I live in the future.

Thanksgiving 2021

November 27, 2021 7:50 pm

On Monday afternoon we went for a hike at Morgan Territory. I like it there. It has some very New England-y sections: trees, mossy rocks, and meandering trails. So much more enjoyable to hike than trails across open terrain in the sun. Corinne ran just about the entire hike (2+ miles!) and only complained about her legs being tired near the end, but she never sat down and refused to move without being carried. So that made it even more pleasant. We brought a couple of walkie-talkies the girls have and Corinne spent most of the time running ahead and talking to us with the radio, which she thought was a blast. Heather wore butterfly wings, because why not?

Mount Diablo in the background

On Wednesday, Corinne helped me make a triple-layer, salted-caramel cheesecake and Heather made pumpkin pie filling while I supervised (I made the pie crust).

And on Thanksgiving we got to enjoy our new dining set for quite the feast. We could actually put the food on the table with us and have a centerpiece!

Corinne wasn't feeling well. She was running a fever and was complaining of nausea and she fell asleep on the couch during the day. She ate most of one roll for dinner and went to bed before dessert. So that took a bit of the excitement out of the day for her. Jess took her for a COVID test Friday morning which came back negative and she's fine now.

We tried a new single-strand braiding technique for the rolls this year which is kind of fun. Clearly we have a little work to do on consistency though.

I spent Friday putting up Christmas lights outside and Jess took down the fall decorations inside. We're going to have to work for our tree this year. None of the local places seem to be carrying grand firs. So we'll have to drive at least 30 minutes somewhere to get one if we want one.

Dining Set!

November 6, 2021 10:06 am

Erin gave me a table and chairs she was replacing back when I was in grad school. We've been using that table ever since. I bought replacement chairs in 2015 because the chairs I received from Erin had essentially fallen apart by that point. But now it's time for something new!

A new dining set (large enough to eat dinner at while putting food on the table; and to play games at without running out of space) has been on our list for a years and we finally worked our way down to it. We put an order in with Canadel through a local distributor (Roney's Furniture in San Leandro) at the beginning of June.

In the past we bought our nightstands and dresser from Roney's and were really happy with the non-pushy workers, their knowledge of the products, and quality of the furniture. So it was our first stop looking for a dining set.

I made a reconnaissance trip by myself to get the preliminary information about how ordering a dining set works from them and what options are available. They directed me to the Canadel website which has all the customization options with a visualizer showing what your finished product would look like. Super handy for visualization-challenged people like us. We played around with that and narrowed down our ideas.

Then we made another trip to Roney's to finalize decisions and put our order in. Roney's happens to be just around the corner from a Ghirardelli Factory Outlet, so when we reached our decision-making breaking point (stains, fabrics, fabric colors, chair styles, table-edge styles, table-leg styles, etc.) we went and got ice cream to reset our energy levels.

We made our decisions, placed the order, and were given an estimate of 2 months due to everyone's logistics being all messed up. And then we waited.

And waited.

2 months came and went and Jess called for an update. No information except that the manufacturer hasn't been able to make it yet.

2 more months came and went and Jess called for another update. Manufacturer still hadn't made them yet, they've been waiting on a part. But they hoped to ship it by the end of October.

The end of October was busy for us with Jess' parents visiting, Heather's birthday, and Halloween. So Nov 2 Jess called again to ask if there was an update and the worker at Roney's told her it was coming off the truck that very moment. They would inspect it first, but would we like to schedule the delivery for the next day? Yes!

Not shown are the two counter stools. Same color and fabric.

The table has a leaf which stores underneath and nice metal-geared tracks on which the halves slide apart.

The worker at Roney's steered us toward these chairs. Actually he steered us to a different design first as the most comfortable dining chair ever. And it was incredibly comfortable, but it had these wing-tip points at the corners which would almost certainly get dug into drywall (especially in our not palatial space) or hurt when run into by children.

So we asked what was similar, but without that pointiness and he suggested these. They are still super comfortable. So much more comfortable than the chairs we had. Spending extended periods of time playing games should be quite pleasant now.

We didn't think it was going to be an issue when we ordered in June, but we're very excited to have our new furniture in time for Thanksgiving. And it should last us for every Thanksgiving we have from here on out.

COVID-19: Part 64

9:36 am
  • Rancho Las Positas Elementary School known cases on site: 9
  • Livermore cases: 6,476; eligible vaccination rate: 81.6%
  • Alameda County cases: 114,592; deaths: 1,397; eligible vaccination rate: 84.6%
  • U.S. cases: 46,268,000+; deaths: 749,000+; eligible vaccination rate: 68.2%

Still over 1,000 people a day dying from COVID in the U.S. This has been ongoing since mid-August after a lovely lull that started about April and reached a nadir in early July. It's currently trending downward; hopefully it stays that way. Last year at this time we were climbing our way back up to a new high. I'm not optimistic about the winter. Still too many irresponsible people who refuse to be vaccinated, refuse to wear masks, and refuse to modify their behavior in any way to reduce spreading the virus. Multiple safe, effective, freely-available vaccines have been readily available nationwide for at least 5 months, and the nationwide vaccination rate of eligible persons hasn't even topped 70%. What an unnecessary loss of life.

Pfizer's vaccine received Emergency Use Authorization for children 5-11 this week. The above "eligible" rates are still for age 12+ as the reporting websites haven't added a 5+ category yet. We should see the overall eligible vaccination rate take a hit now that millions more have become eligible, but haven't had time to be vaccinated yet.

Our girls have an appointment for Nov 11 to get their first dose. They'll receive their second dose Dec 2 and be considered fully vaccinated Dec 16. Hooray! There are still stupid people saying things like, "kids don't need to be vaccinated, COVID hardly even affects them." Yet, the CDC has recorded 620 deaths of children 0-17 from COVID-19. I would prefer my children not be added to that list of the unlucky few--or the 4,325 kids hospitalized or the unknown amount of kids with lingering long-term effects. Especially when a safe and highly-effective vaccine is freely and readily available.

Updated guidance made me eligible for a booster shot due to lower efficacy of the Janssen vaccine compared to the mRNA vaccines. I got a Pfizer booster shot on Nov 3. Other than mild fatigue I didn't have any side effects (unlike my Janssen shot).

The Lab, following Federal requirements, has moved from vaccination-or-testing to vaccination required (or medical/religious exemption which will likely require regularly testing). The original deadline was to be fully vaccinated by Dec 8, but it looks like that deadline got pushed to Jan 4.