MiLight Auto

Status
Completed
Approximate Date
Work Context
Personal Project
Contribution Level
Completely Independent
Technologies Used
Python, Linux, BASH
Download
milight_auto.zip (30.83 KB)

This is the program that started it all. Yes, this is my very first program ever.

This program is designed to control the MiLight WiFi lights in my apartment dependent on a number of factors including:

  • The presence of either my mobile phone or my partner's mobile phone on the network.
    The system is designed only to operate when either of us is home, though it can be scheduled to be independent of user presence.
  • Whose mobile phone is at home and attached to the network.
    Depending on who is home, ambient lighting will automatically change color to a color preselected by the user.
  • Whether or not the current time is after sunset or sunrise.
    All ambient lighting switches to red at sunset to reduce the impact that blue lighting has on sleep cycles.
    The entryway light will automatically come on when a mobile phone reconnects to the network. (I.e. when someone returns home at night.)
  • What time it is.
    All living space ambient lighting changes to dim white after midnight lasting until sunrise.

The program was written with a centralized scheduling file to allow for customizations to the schedule without any modifications to the code. The program has also been written to include integration with the Nest Protect smart smoke detector API in the future. When implemented, all ambient lighting will flash red when the smoke detector detects smoke.

I wrote this program after briefly taking the Introduction to Computer Science course from MIT on edx.org. I was only able to keep up with this course's assignments for four weeks because of obligations at work. Using Google to fill in the gaps, I was able to successfully complete this program. This made me realize that I should consider programming as a new career path. While I had extensive experience with web development, HTML and CSS is not really a programming language and I never saw it as such. As a result, I never gave programming any consideration as a viable career path. It is with this program that I started my journey into programming which lead me to NSCC to study it.

This program, after 3 years of successful use, has been recently retired.