Skip to content
A Client for the RFM69-USB-Gateway and Indoor Air Quality Sensor
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

IEQ (Indoor Environmental Quality) Gateway

A Client for the RFM69-USB-Gateway and Indoor Air Quality Sensor


1. git clone
2. mix do deps.get, deps.compile
3. iex -S mix


As a new sensor array starts broadcasting, a process is started to parse and store the state of the sensor array. Each update triggers an event notification over IEQGateway.Events event bus. You can add a handler to the event bus by calling IEQGateway.EventManager.add_handler. To see an example implementation of a handler look at IEQGateway.Handler and also be sure to look at the tests.

An event is the state of a sensor array which looks like this.

    battery: 0,
    co: 39.0,
    co2: 450.0,
    door: 0,
    energy: 0,
    humidity: 35.4,
    id: :"IEQStation-2",
    light: 216.0,
    motion: 0,
    no2: 0.0,
    pm: 0,
    pressure: 29.96,
    rssi: -27.0,
    sound: 526.0,
    temperature: 31.6,
    uv: 0,
    voc: 125.0

Different nodes on the network will report different values, the state represents all possible values.


Architecture Image

IEQGateway.Client is a small Serial client. It is the main interface for sending and receiving messages. As a new IEQ(Indoor Environmental Quality) station is discovered a process is spawned through IEQGateway.StationSupervisor and the station processes' state represents the station's attributes.

Every 8 seconds the station sends updated attribute information, the station process (IEQGateway.IEQStation) parses the data and updates it's state, the state is then broadcast (using notify) over IEQGateway.Events event bus. Anyone can add a handler to the event bus to handle updated station state by calling IEQGateway.EventManager.add_handler. See IEQGateway.Handler for an example implementation of an event handler.

You can’t perform that action at this time.