jupe / home.js

OBSOLETE: General (home) automation framework based on node.js.

Home Page:http://jupe.github.io/home.js/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FB group

IN PROGRESS!

Build Status Support via Gittip endorse

Overview

General (home) automation framework based on node.js and mongoDB.

The aim is to provide a general framework for home/build automation that can be used for example to control the lights on when the motion detector can see the movement.

Features (planned)

  • Upgrade directly from web UI
  • Users and groups + authentication
  • node.js based server with flexible db (mongoDB)
  • HTTP RESTful API
  • single-page front-end (really fast)
  • schedules scripts
  • action scripts
  • Email alerts (e.g. if temperature goes over limits)
  • Supported hardware:
  • onewire (owfs/etc)
  • RESOLV VBus (heating system measurement)...
  • zwave (zwave.me/etc)
  • remote reading of electricity
  • Onkyo Receiver
  • ...

Installation

See INSTALL file.

Dependencies

  • nodejs
  • mongodb
  • owfs (will be optional dependency)
  • limitations: owfs support only Linux.
  • I've thinking to start using some other onewire library

Used node modules

Front-end libraries

Test

API Tested against node.js versions

0.10 0.8 0.6

HW requirements

  • Supported OS: Linux/partially windows
  • Supported HW: Raspberry Pi & x86 based systems

API

HTTP API /api/v0

REST Collections

  • user [HTTP] /user
  • User collection
  • group [HTTP] /group
  • User groups
  • event [HTTP] /event
  • System events
  • action [HTTP] /action
  • Action scripts
  • schedule [HTTP] /schedule
  • CRON schedules
  • device [HTTP] /device
  • device metadata
  • device.event [HTTP] /device/:device/event || /device/event
  • device events
  • device.data [HTTP] /device/:device/data || /device/data
  • Measure data
  • rules [HTTP] /device/:device/rule || /device/rule
  • Immediately rules when data received. If rule(s) match, start execute action(s)

Query parameters:

[q=][&c=true][&f=][&fo=true][&s=][&sk=][&l=] q= - restrict results by the specified JSON query c=true - return the result count for this query f= - specify the set of fields to include or exclude in each document (1 - include; 0 - exclude) fo=true - return a single document from the result set (same as findOne() using the mongo shell s= - specify the order in which to sort each specified field (1- ascending; -1 - descending) p= - specify the set of fields to populate in each document sk= - specify the number of results to skip in the result set; useful for paging l= - specify the limit for the number of results (default is 1000)

To do

  • basic test steps against API
  • nice GUI - work in progress
  • more functionality - work in progress
  • plugin functionality

Contributors

License

Released under the MIT License. See LICENSE file.

Copyright � 2013 by Jussi Vatjus-Anttila.

About

OBSOLETE: General (home) automation framework based on node.js.

http://jupe.github.io/home.js/

License:MIT License


Languages

Language:JavaScript 93.5%Language:CSS 6.5%Language:Shell 0.0%