I've been looking at this for my home. Realistically I've just been spending a lot of time so far just modeling my database schemas so I can eventually put APIs on top of it all to talk with.
Mostly just make sure you pick some devices you can think you can interface with, have been reverse engineered, or get ready to reverse it yourself I suppose (which might be easier than you think, considering how bad embedded security is)...
If I were doing this just for my own home I'd probably get a half decent NAS capable of running Linux and then run home-assistant.io on it rather than building everything from scratch. Home Assistant gives you a decent UI, integration with almost any hardware you can think of, programmable automation, and an API to build against if that isn't enough.
On the NAS side there is FreeNAS, however I don't know the two would interact or if you could directly install both packages into one server (I don't see why not though, even though PFSense probably wouldn't recommend it).