IN PROGRESS!
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.
- 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
- ...
See INSTALL file.
- nodejs
- mongodb
- owfs (will be optional dependency)
- limitations: owfs support only Linux.
- I've thinking to start using some other onewire library
- express
- express-resource
- mongoose
- uuid
- owfs
- emailjs
- cron
- hoard
- winston
- keypress
- optimist
- daemonize2
- mongoose-query
API Tested against node.js versions
0.10 | 0.8 | 0.6 |
---|
- Supported OS: Linux/partially windows
- Supported HW: Raspberry Pi & x86 based systems
HTTP API /api/v0
- 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)
[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)
- basic test steps against API
- nice GUI - work in progress
- more functionality - work in progress
- plugin functionality
Released under the MIT License. See LICENSE file.
Copyright � 2013 by Jussi Vatjus-Anttila.