Giter VIP home page Giter VIP logo

alarmserver's Introduction

j64.AlarmServer

A Server to integrate the Envisalink DSC controller with Smart Things

This server allows you to integrate the EnvisaLink DSC controller with the Smart Things Hub. Once integrated you will able to control you security system from the smart things hub and do things like automatically turning security on when you leave, incorporate your motion sensors into smart things routines (turn lights on when motion is detected), integrate turning your security system on and off via the amazon echo and many other things.

The main reason I wrote this code was not because there was anything wrong with other AlarmServer packages that work with SmartThings, it was more because I wanted to learn a little bit about SmartThings development as well as learn how to use the new cross platform framework that MS has come out with Asp.NetCore 1.0.

The following diagram illustrates how the various components of the solution interact with each other.

Smart Apps Page

When the j64AlarmServer is started it opens a socket to the Envisalink controller. The envisalink server will send information about the state of the alarm system back to j64AlarmServer including items such as whether a window is open, motion is detected or the alarm has been activated. Likewise, the j64AlarmServer will send commands to Envisalink that will perform functions such as arming or disarming the security system.

As various events occur on the security sytem the j64AlarmServer will raise events. These events can be caught by any applications that have subscribed to them. In this case the j64WebApi will subscribe to those events and for certain events it will notify the smart things hub of the change. For example if a window is opened that event is caught by j64AlarmServer and a web service call is made to the j64 Smart App that is running withing the Smart Things cloud. From there the Smart App can take the appropriate action. Typically this means notifying all of the devices that were defined for the controller and then propogating that state information out to the mobile app.

The smart things mobile app allows the user to trigger actions such as arming the security system. When this occurs, the mobile app will talk to the devices running within the smart things cloud. Those devices will then relay a web service call to the j64WebApi via the Smart Things Hub. So it is the smart things hub that talks to the j64WebApi that is running on your local network. The apps were designed to make a call to j64WebApi from the local network only to prevent the need to open up ports on the firewall that is protecting your local network.

There is obviously alot more to how this all works. You are encouraged to look at the code, make enhancements or suggest how I can improve on it.

If you are ready to get started on the install of the app, review the GettingStarted.md in the Documentation folder. In there you will find instructions on how to get all the various parts and pieces up and running on your machine.

NOTE: this server does not work with the honeywell controller.

alarmserver's People

Contributors

joejarvis64 avatar jacauc avatar mattui avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.