digs

A home automation server written in JavaScript

Usage no npm install needed!

<script type="module">
  import digs from 'https://cdn.skypack.dev/digs';
</script>

README

digs logo

digs NPM

Build Status Join the chat at https://gitter.im/digsjs/digs

A home automation server written in JavaScript

Achtung!

This project is under heavy development and probably won't do much of anything at any given time.

The latest development release will be published under the devel tag. To get it:

$ npm install digs@devel hapi@^8 

In addition, the bundle-digs repo includes all other projects as submodules, if you just want to grab them all at once.

Project Goals

Hi! Could use your help (yes, you).

This project has lofty goals. digs, ultimately:

  • should be first-class home automation server
  • should be modular
  • should support an assortment of interfaces, including:
    • RESTful HTTP and CoAP APIs
    • MQTT and other messaging protocols
    • a slick web interface which works well on mobile
    • a CLI
  • should support a wide range of:
    • devices
    • configurations
    • communication protocols
    • storage options
    • authenticate schemes
  • should "just work"
  • should be easily extendable for your own setup
  • should support serial devices
  • should work in real-time
  • should be well-documented
    • tutorials
    • full API docs
  • should be well-tested
    • 100% unit test coverage
    • a plethora of integration tests

If this sounds good to you, I'm hoping you can lend a hand. I am but a man. Send a PR, create an issue to discuss, or shoot me (Christopher Hiller) an email.

Installation

Hapi (>= 8.0.0 < 9.0.0) is a peer depdency of this package, so:

$ npm install digs hapi

Contributing

See CONTRIBUTING.md.

Project Organization

digs is divided into multiple projects. This tends to change daily as projects are renamed, removed or created. But as of this writing:

  • digs - A Hapi plugin which makes everything work
  • digs-common - A moatload of common objects and functions shared by various packages
  • digs-data - Abstraction layer for persistent storage
  • digs-serial - Serial device plugin
  • digs-dev - Common development dependencies (devDependencies)
  • digs-messenger - Messaging protocol plugin
  • digs-mqtt-broker - Flimsy MQTT broker if you don't have a proper one
  • docker-digs - Docker image for Digs

Roadmap

TODO

Author

Christopher Hiller

License

MIT