MKR1000 Christmas IoTree

About This Project

This project was submitted to Arduino’s project contest on

I wanted to automate various aspects of my Christmas tree, namely the lights. I also wanted to know if there is any activity around the tree. This could include someone peeking too early at a present, or even when Santa Claus arrives :wink: . I have an IP camera pointed at the Christmas tree so I can view the activity when motion is detected.

One MKR1000 is location on the Christmas tree (it looks like an ornament!) and the other MKR1000 is located on my office desk. The MKR1000 on my office desk will turn on an alarm light if motion is detected by my Christmas tree at home. I will also receive a text message when motion is detected.

I used the MKR1000 and Cayenne Scheduling to turn my Christmas tree lights on at sunrise and off at sunset.

I used an Arduino MKR1000 with Cayenne IoT Project Builder. Cayenne handled all of the automation, trigger events, scheduling, and text message notifications used in the project.

What’s Connected

2 Arduino MKR1000’s
PIR Motion Detector
IoT Relay
Christmas Lights

Triggers & Alerts

Send me a text message when motion is detected

Turn on the alarm light at my office when motion is detected


Turn on Christmas lights at sunset and sunrise

Dashboard Screenshots

Photos of the Project

Chistmas Tree Setup

MKR1000 Looks like an ornament!

Relay connected to MKR1000 and Christmas tree lights

Motion detector



A very professional looking tree job you got there haha

We take tree decorating very seriously in this household :wink:


Hi, just wondering intriged by this sunrise/sunset remark; are you using just a fixed time event or the magic i am looking for my own project to determine sunset/sunrise and use these values as a trigger.

Hi @wj4me,

Good question. Right now it’s just scheduled for a set time based on when it gets light in the morning and dark in the evening.

I could have used some type of luminosity sensor, like a photoresistor, to try and sense the sunrise and sunset, and then trigger the lights to turn on/off.

A sunrise/sunset feature that takes into account local time has been brought up before in the Cayenne community. It’s something that we plan on doing and it’s on the roadmap of features to implement. Though, it’s behind some bigger features.

Hope this helps!


I am working on a 433 project with about 8 selflearning switches, in principle working and light will go on/off with schedule. But is there a way to extract the time from cayenne? I can do this with an attached RST but this will give some additional coing and i am hooping I to avoid this when I use the cayenne time. The sunset/sunrise are already calculated in minutes and displayed; hope i can build a trigger around them.