I was originally considering openhab, but then I discovered Home-Assistant (https://home-assistant.io/) and I've been hooked since. It ticks off a bunch of check-boxes that made it a great home OSS solution:
Pro's
- No internet required, can run entirely on a Rasberry Pi
Home-assistant also has a great homebridge plugin (https://github.com/home-assistant/homebridge-homeassistant) to easily bridge devices to HomeKit. I got home-assistant talking to zwave and zigbee with a Linear HUSBZB-1 stick (new version does both) and finally threw my wink hub in the garbage. Even through Home app -> homebridge -> home-assistant, everything is super fast and 100% local, unlike most of the commercial hubs.
I second the Home Assistant suggestion - I've also been running it for a while now, and it's pretty easy to get the hang of once you've been using it for a while.
Admittedly I'm definitely a tinkerer myself, but I honestly like the config just being a bunch of YAML files. It's really easy to back up that way.
Pro's
- No internet required, can run entirely on a Rasberry Pi
- Integrates with most everything thanks to the huge component library (https://home-assistant.io/components/)
- Easy to write your own Python component to integrate with new stuff
- Can use existing SmartThings/etc hubs or Z-wave usb stick to talk to most anything
- Fairly easy to write automations
- Well written Python 3 code-base that's fairly easy to read and see what's going on yourself
Con's
- Definitely more for the DIY tinkerer
- Need to write YAML for the automations, though a new GUI makes this easier for many cases
Setting up an SMS to me when a motion sensor tripped was pretty easy, my automation was:
I've had it running for over a year now, and it's been quite nice.