Skip to content
This repository was archived by the owner on Nov 23, 2019. It is now read-only.
/ home.js Public archive

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

License

Notifications You must be signed in to change notification settings

jupe/home.js

Folders and files

NameName
Last commit message
Last commit date
Oct 30, 2013
Aug 11, 2013
Oct 5, 2013
Oct 5, 2013
Oct 4, 2013
Aug 11, 2013
Aug 11, 2013
Sep 29, 2013
Aug 11, 2013
Sep 9, 2013
Aug 11, 2013
Apr 20, 2013
Mar 31, 2013
Oct 27, 2013
Oct 27, 2013
Aug 12, 2013
Oct 5, 2013
Aug 12, 2013

Repository files navigation

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.