You should, for projects you are doing for 'fun' be selfish about it, and here's why:
As a programmer, we like to solve problems. If there aren't any, we create them so that we can solve them. Pet projects are an expression of that.
If you choose to solve someone else's problem, then you won't really know how to fix it. You'll solve problems that you see.
/* This function worked ok, but now it reads from a configuration file that
is written in a custom dialect of Lisp */
If you are solving a problem you have, you'll focus on the solutions that solve your exact need. For instance, you probably wont greenspun your garage door opener until it actually opens mostly right, and also all the lights and thermostats work pretty well too.
Plus, you need at least one user to test it. If you're working on a problem you don't have, then the testing phase will be an obstacle, rather than a new toy for you to play with and show off.
Very few problems you could solve for yourself are really unique to you. Have you looked into other home-automation systems? Will you be able to share your own results once you've got something to show?
My present project is something in-between. I'm working on something that will help my closest friends with something they need.