Serenity - Web Based Automation Framework

A user-friendly and customizable intranet of things framework that makes home automation a breeze. Automate your home with no code!

Similar projects worth following
A user-friendly and customizable intranet of things framework that makes home automation a breeze. Automate your home with no code!

Serenity is a web-based tool to automate Arduino based control systems without writing code. The user interface provides a way to easily monitor, control, and setup your system.

Serenity is compatible with off the shelf Arduino sensors and is completely free and open source. It is made using the Johnny-Five (javascript robotics library) module and is compatible with (almost) all of its compatible hardware.

The goal of this project is to create a tool that can easily automate any IoT device in your home and also allows you to create and manage your own smart devices/system.

Our Vision

We envision serenity to be an all around automation system. We are aiming for complete device compatibility and to discourage the development of incompatible, disconnected, and completely proprietary consumer devices. We also aim to encourage the creation of custom made automation systems using cheap or high-quality off the shelf hardware.

How Serenity was Created

Serenity was built using Node.js. We've utilized, express, and the johhny-five libraries.

How Serenity Works

System setup is simple. A computer connects to an arduino via a serial connection (bluetooth,usb,ect...) and you setup rules to control your system though an easy to use interface.

The software uses Trigger - Action relationships for control. You configure what hardware is connected to which pin on the arduino and setup rules for that hardware to follow using triggers and actions. Here is an example.

Photocell > Arduino pin A0

desk lamp > relay > Arduino pin 3

Trigger Action

Phototcell > 55% |||| relay = opened

Photocell < 56% |||| relay = closed

Configuration is that easy!

This software has applications in farming, security, aquariums, home automation, any many more!



Follow us to stay up to date!


JavaScript Object Notation (JSON) - 449.00 bytes - 08/22/2016 at 06:46



JavaScript Object Notation (JSON) - 290.00 bytes - 08/22/2016 at 06:45



JavaScript Object Notation (JSON) - 364.00 bytes - 08/22/2016 at 06:45



JavaScript Object Notation (JSON) - 556.00 bytes - 08/22/2016 at 06:45



JavaScript Object Notation (JSON) - 540.00 bytes - 08/22/2016 at 06:45


View all 40 files

  • 1 × Computer w/ Node.js Installed and internet connection (Tested on linux)
  • 1 × Arduino with usb port

  • Tiny Farm Demo

    CFA08/22/2016 at 06:34 0 comments

    Hello All,

    We've made some progress since the last post and we also created a short video demonstrating an application of Serenity using a tiny farm. Check it out -

    This video shows just one of infinitely many applications of Serenity. Howerer, it is still in development and there are a lot of features that still need to be implemented.

    Heres a list of a few features we have in mind:

    -Wireless Serial Ports using Bluetooth HC-06 Module

    -Wireless Serial Ports using Wifi ESP8266 Module

    -Multiple Arduino Board Support on one computer

    -Multiple Triggers for one action (two conditionals to run an action)

    -Multiple Actions for one trigger (one conditional to run multiple actions)

    -Rest API to retrieve sensor Data

    -SmartPhone app to configure and monitor setup

    -Data Logging

    -Configurable Display w/ charts and gauges

    -Live data comparisons monitoring

    -Modernize the User Interface

    -Voice Control

  • The UI is working!

    CFA08/21/2016 at 02:33 0 comments

    We have a rudimentary version of the user interface working! This video demonstrates its functionality.

    So in this video, I set up an automated system to blink a LED when motion is detected. First, the pins on the Arduino are defined. We tell the software that a LED is on pin 13 and a motion sensor is on pin 4. Then we define an action as blinking the LED that we previously configured. Lastly, in the triggers menu, we tell the software that when motion is detected (motion = 1) , run the Blink LED action.

    This software, of course, is designed to be used by something far more complex, but for all intents and purposes, this setup demonstrates how the system will be configured.

    Also, in upcoming versions, you will be able to have more than one action linked to each trigger and more than one trigger linked to each action. Allowing you to create highly complex systems without any code.

    A reminder: Serenity does not require you to use an Arduino with it. The goal of Serenity is to make home automation easily configurable. So, while it does create a very easy and efficient way to set up an Arduino-based system, it is also designed to monitor and control wifi and Bluetooth-connected smart devices in your home. Like light switches, outlets, or locks,

  • Our Goal is in sight!

    CFA08/17/2016 at 14:15 0 comments

    Just a few days awa from Aug 22 and we are working hard to have some demo videos out for you guys to demonstrate our software, however we needed to make some changes first:

    -New UI (the old one was terrible,the new one is slightly better but has potential)

    -Support for multiple boards

    -Bluetooth functionality using an hc-06 module ( your computer can be connected to the arduino via bletooth!)

    -Sensor logging

    -A new name (the software is now called serenity, HAAC is just Harsh and my initials put together,how convenient)

    -Compatibility with existing commercial home automation setups(the software should be able to setup rules for you Samsung SMarthings/WeMo plugs/Philips Hue/ect... and be compatible with things like Amazon Alexa)

    -MQTT functionality

    We have a bunch more features we are also trying to implement but those are our priorities. Please give us some feedback on what you think should be added!

  • Initial Build (Just getting Started)

    CFA08/10/2016 at 02:09 0 comments

    Our main focus right now is the trigger-action capabilities with the different arduino sensors. So far we have a few sensors working as triggers and relays and Leds firing as out actions.


    -Json configuration Files

    - Trigger - Action Code

    - A basic UI


    To Do:

    -Access Control

    -Add more hardware compatibility

    -Better Looking UI

    -Configurable Home Page

    -Plugin Support

    -Configurable general settings

    This video is demonstrating the trigger action functionality of HAAC-IoT. In the video it is configured with 2 triggers, each a get request relying on the parameter "val". Those triggers have corresponding actions which are configured to open and close the relay in the video. An easy way to create an Iot Device with no code!

    In the next update we will show the easy to use user interface for configuring arduino pins, triggers, and actions!

View all 4 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates