I use a ton of different technologies in my house, probably too many. I an Arduino-based thermostat powering A/C and lighting, Raspberry-Pi’s monitoring doors, docker containers monitoring dynamic IP address changes, GlusterFS powering high-availability filesystems, and many other projects. It has gotten to the point where I cannot remember where everything is on my network and I needed one centralized place to go. It had to get me all of the information I needed and control everything in my house.
So I launched the MitchMania Labs API (MMLAPI), giving me everything I needed to be a total Mitch. Written in Python using Flask, I can hit it with simple GET requests and it will return all the information I need in a JSON response. It interfaces with systems such as my thermostat, torrent seed box, Icinga host monitoring, multi-room music system, etc. With some requests like those relating to my thermostat, it is literally functioning as a simple proxy just echoing my request to the appropriate box. Some of the requests like host monitoring are more complicated. My API interfaces with the Icinga REST API and distills the information. This takes the overwhelming amount of information that Icinga provides and makes it just enough for what I need in each case. I plan on writing an Angular.js front-end for all of these endpoints to create a sort of “dashboard” for my entire house. Then I can pull it up on anything from my iPad to the x86-based touch screen in my hallway.
Want to see some of the simulated functionality of the MMLAPI? I have uploaded the flat files generated by my internal MMLAPI to my site!