Giter Club home page Giter Club logo

domogeeek's Introduction

DomoGeeek

DomoGeeek is a set of small and modulars applications for home automation based on Z-Wave / Raspberry Pi / NodeJS / MongoDB.

DomoGeeek provides a Restful API based on resources exposed by the Express.js framework.

The goal of DomoGeeek is to provide a set of small modular applications to allow any geek to create their own home automation box quickly. All the apps provided can be used separately. They can be modified and adapted easily.

Note : These small NodeJS apps are fully experimental. You can use PM2 to start the apps and maintain them up.

Logical architecture schema

DomoGeeek Logical Architecture

My installation

  • A Raspberry Pi with a Z-wave Dongle / Raspian / NodeJS and MongoDB that hosts all the NodeJS apps.
  • An Android Phone that provides me a free SMS gateway and notifies me when there is a power outage.

DomoGeeek Physical Architecture


#Core apps description

GroupSMS

GroupSMS Exchanges SMS with your neighbourhood.

The GroupSMS application allows people to subscribe and unsubscribe to SMS lists. When a message is sent to the list by SMS, the message is also distributed to all the subscribers by SMS. GroupSMS is a kind of SMS Hub. This application is useful to connect all your neighbours throw an SMS Mailing list. This application uses an SMS Gateway. I use the Android SMS Gateway application to send and receive SMS freely. All the messages and subscriptions are saved into a MongoDB database.

ZwaveBus

ZwaveBus Captures and sends Z-Wave events on your Z-wave devices.

The ZwaveBus application allows you to communicate with your Z-Wave devices. All the Z-Wave events received by the Raspberry Pi are transmitted to an event bus developed in NodeJS. You can quickly develop your own listeners that subscribe to specific Z-Wave events. Few lines of codes are enough to retrieve or submit some Z-Wave events. There are currently 3 listeners available : Movement detection, smoke detection and power consumption. You can use them as samples to develop your own listeners for your devices. To understand what are the Command Class to listen, I recommend you to start the ZwaveBus with the debug options activated. This project is based on the OpenZwave project and a NodeJS Wrapper.

Multipush

MultiPush Broadcast text message to your devices.

The Multipush application allows to broadcast messages on multiple communication channels : sms, mail, karotz, openkarotz ... The Multipush application exposes a simple REST service easy to use to send a message quickly to any devices.

Presence

Presence Checks human presence in your home

The Presence applications allows to check if a known presence is inside your home. This application uses the Smartphone Wifi detection (using the Freebox API) and Karotz Tag to check if there is somebody known inside the home. This application exposes a REST service that returns who is inside the home: a known mobile device or a guest that used the Karotz RFID tag to announce his presense. This application is used by the "Presence" module inside the ZwaveBus project to check when a movement is detected if their is a known person into the home.

Scheduler

Scheduler Schedules tasks in your home

The Scheduler application provides a tasks mechanism to schedule tasks like opening or closing the shutters automatically regarding the sunset and sunrise hours, reminder you when trash cans needs to be put outside the home. This application is based on a Cron module from NodeJS. You can easily add your own tasks in the tasks directory or extend the existing ones.

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.