It consists of multiple services connected via a bus (zeromq):
- Broker - Push/pull + pub/sub message hub. Message central.
- Logger - Logs sensor data to cosm.com
- Event-Triggers - Triggers events based on certain sensor data situations
- MCU-Relay - Microcontroller relay - receives sensor data from jeenodes
- Notification - Sends notifications to iOS devices (prowl) and to email
- Powercontrol - Controls and receives events from 433 mhz receivers/transmitter (RFXtrx433)
- Heating - Time based thermostat service (Todo: PID + motion sensors)
They can be launched using pm2.
pm2 start homeautomation-pm2.json
The system also contains some microcontroller-code for arduino-compatible controllers (Jeenode) with RFM12b radios.
- MasterNode - Receives sensors readings from slavenodes, controls Pioneer Home-Cinema Receiver via SR-bus. Acts as a simple serial bridge.
- SlaveNode - Sleeps, wakes once every minute, gather sensor data, transmits wirelessly to masternode.
Other hardware used: