Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (45 sloc) 3.49 KB

Internet-enabled children's nightlight

Powered by Node.JS, Philips Hue.

Why Does This Exist?

I wanted my kids to have a nightlight in their room that:

  • Had programmable color
  • Had an adjustable timer (turns off X minutes after being turned on)
  • Had an interface to show history of button pushes (so I can see when they were awake)
  • Schedule the light to change color on a schedule (so at 7am it turns to blue to indicate "Ok, it's morning time!")

Live Demos

Demo of button turning light on
light turn on
Demo of button turning light off
light turn off

What Does This Do?

There is a Node.js web server that runs on the network, connects to the Philips Hue bridge, and listens on the network for some button to get pushed.

Each button gets associated with a light on the network. If the button is pushed and the light is off - the light is turned on (and a timer is started to automatically turn the light off after X minutes). If the button is pushed and the light is on - the light is turned off.

There is also a web application that sets the default color and colors during specific time periods. The web interface - in addition to showing times of button pushes - permits turning the light on with & without the timer, and turning the light off.

Setup

Getting The App Running

For the most part, it is a straight-forward Node.js application. After downloading this repo and extracting it to a directory of your choice, run:

  • npm install
  • npm run setup
  • sudo npm start

You can now access http://localhost:3000/ and view the complete interface. (On my home network, I put this behind nginx and set the in-house DNS to know it as "nightlight". So now babysitters and family just go to http://nightlight/ to use it.)

Keeping The App Running

You'll find plenty of other great tutorials on the web about running a Node.js app as a daemon, but here are a couple:

Screenshots

Desktop interface for monitor and control
Mobile interface for monitor and control
mobile view

Acknowledgements

You can’t perform that action at this time.