Skip to content

bibi21000/janitoo

Repository files navigation

Travis status

Circle status

Coveralls results

Code Health

Docker size

Docker size

Join the chat at https://gitter.im/bibi21000/janitoo

Documentation

Welcome to Janitoo

Not another Home Automation software ... a full protocol

A video of presentation is available on youtube : https://www.youtube.com/watch?v=S3Gqj32sJ-Q

Documentation

You can browse online documentation here : https://bibi21000.github.io/janitoo/.

Tutorial

You can find a tutorial here : https://bibi21000.github.io/janitoo_tutorial/.

What is Janitoo

Network

A network in Janitoo is holded by Mosquitto. It use the Dynamic Home Configuration Protocol to allow nodes to communicate each other.

Each node on a network has its own HADD : xxxx/yyyy where 0 <= x,y <=9.

Nodes with an HADD ending in 0000 (ie 1234/0000) are called controllers. They are responsible of the nodes in their subnetwork (ie 1234/0001).

Supervisors

Supervisors maintains a "map" of the network. There are of 2 types : primaries and secondaries.

The primary will serve configuration parameters for the nodes.

The network is managed by a finish state machine. Only the fail mode can be considered as usuable.

Controllers, nodes and values

A node holds values.

There is many genres of values :
  • system : needed by the protocol itself.
  • config : used to configure nodes and values
  • basic : base values. Used by nodes themselves and andvanced users.
  • user : for common users
  • command : to launch advanced commands ie pairing

Examples of nodes/values

  • an ups is a node (janitoo_nut). battery_level, upsstate, ... are values
  • a vacuum is a node (janitoo_roomba). baterry_level, dock state but also clean, dock commands are values
  • an rrd source is a node
  • an arduino is a node

...

If your familiar with openzwave and the zwave protocol, janitoo is a kind of zwave over mqtt.

Bus and components

Ths bus and components are the developpers API of the nodes in Janitoo.

A bus can hold components and is associated to a controller A component is mapped to a node. The map is done using a configuration file

Multi_hardware

Due to its low memory footprint, janitoo can be used on many hardwares :

  • Arduino mega. Actually, it's impossible to install it on an Uno.
  • Raspberry : the 0 will be supported (python). The janitoo_hostsensor with 7 nodes and about 100 values only takes 3% of memory and 7% of cpu on a Raspberry B.

...

About

Janitoo commons tools

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages