My new Household Assistant: Alfred

By Daniel Lemky / May 13, 2021

I started working on a new personal project a few weekends ago that I am referring to as Alfred. The general concept of Alfred at this stage is that Alfred is a custom Household Assistant that is able to help keep track of various useful data points for around the house and provide useful automations for repetitive tasks.

One of Alfred’s starting features is the ability to log the heights of my kids as my wife and I record them over time. As of right now, it’ll act as a simple log, but further down the road, I plan to add the ability to review growth by year, as well as graphs for easy readability.

Each member of the family now has their own account and will be able to access functionality based upon the role I have assigned to them. I’ll be able to change my kid’s access privileges as they get older in order to give them access to more features that they currently have no need for.

One of the most used features so far is Alfred’s tea timer. I built the tea timer itself a year or two ago but have now added it as a feature to Alfred. The tea timer integrates with Siri and allows for phrases like “Hey Siri, just made tea”, to trigger a timer on Alfred to inform us with the tea is done steeping (I drink a lot of tea).

Additional tea commands for Alfred’s tea timer are “I took the teabags out” and “Check tea”. “Check tea” returns a message, depending on the status of the timer, that says, “Tea was ready 10 minutes ago. Teabags have not been taken out,” or, “You’ll want to make a fresh pot. Tea was ready over 2 hours ago.”

After drinking tea for basically my entire life and often trying to remember when I made the last pot in order to determine if the tea is still good or if I’ll need to make a new pot, this feature has been quite useful and eliminates the wondering. I also appreciate the precision of knowing exactly when to take the teabags out of the pot.

Another feature I added to Alfred is Net Worth tracking. Net Worth tracking calculates and records our net worth based upon the various accounts and items entered into Alfred. At this time, account balances have to be manually entered which is easy enough, but I’m currently building the integration with a service called Plaid which will allow Alfred to connect to our bank and investment accounts directly and pull the balances on its own. Once done, the net worth tracking should be on autopilot since account balances will automatically be updated as Alfred is able to fetch the latest balances on its own – at least until the bank connection is disconnected and has to be re-authenticated because banks are well… banks.

In the months and years to come, I plan for Alfred to evolve in usefulness and functionality as different ideas and use-cases come up.

I also want it to be a place where 20 years from now our kids can log in and be able to access their own historical information and other fun details that have been logged.

Alfred may also be a great project to work on with my kids as they learn to code in the years to come.

Besides the fact that I’m building functionality that I want, one of the major plus points about Alfred is that my family are the only ones using it – and I’m the one who built it. That means that I know exactly how the application is built and I know how the data is being used (well… except for the data that travels through Plaid 🤦‍♂️).

When it comes down to it, unless you build something yourself, you never know how your data will be used. It’s impossible (and far from efficient) to try to build everything, so it’s important to be able to trust the companies behind the products we use in our personal and work lives. There aren’t a whole lot of companies that I feel this way about but there a few. And I’m more than happy to use their products and do business with them as a result of that.

That’s my hope for my team as well – that we can be that to our customers.

As for Alfred – I’m just trying to figure out if it’s weird to refer to Alfred as a he and a him rather than an “it”? He’s not a person…