I started developing the Common Ground project around November 2015. At the time, I did not have intentions of fully developing what was then just a small piece of code written for a science fair. I then realized that many others had faced the issue of incompatible devices and protocols and that further development of this project could help people overcome the limitations imposed by hardware manufacturers, giving people the freedom to do what they want with their devices.
That being said, this is at this time VERY much still in a proof-of-concept state. Only Phillips Hue and MQTT are mostly supported and there is half completed support for Belkin WeMo (The WeMo code is not pushed to GitHub if you bother to look). It also does not actually translate directly between protocols but translates everything to MQTT and then into other protocols. Documentation is a joke. I plan to scrap the code and do a complete rewrite, implementing modules and a proper mezzanine object layer API. I also may change programming languages from Python to Java or C++ for performance increases.
Fig. 1 Flowchart showing data flow in early version of Common Ground
(I am going to try to run the code and get some screenshots of it running if I have the time and don't forget.)
However bad this proof-of-concept may be, it works, showing that this concept can actually be put into action and serve its purpose. With the problems evident in this early version in mind, development on v0.2 starts now.
GitHub Repository: https://github.com/SamuelBowman/SF2015-Common_Ground
(SF2015 stands for Science Fair 2015 in case you were wondering.)