Skip to content
This repository has been archived by the owner on Nov 16, 2021. It is now read-only.

mylesagray/homebridge-blueair

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm GitHub last commit

This plugin is not actively maintained, I no longer own a BlueAir and cannot fix issues - Repo is up for adoption.

An alternative plugin

Fraser has done a great job on a new dynamic, platform based plugin that was based on this foundation - please give his a try as an alternative! fjs21/homebridge-blueair

homebridge-blueair

This is a homebridge plugin which lets you integrate your non-HomeKit BlueAir air purifier into HomeKit.

Currently supported are all Classic i-Series air purifiers, however, Classic series without sensors but do have wifi controls, should be supportable if I can be provided with API output by anyone!

This plugin exposes all BlueAir (Foobot) API characteristics and assigns them to native HomeKit Characteristics. The plugin will also mimic the Elgato Eve Room device such that, if using Eve.app on an iOS device, you will have historical logging and graphs of these metrics.

Currently all history state is stored on the local filesystem of the device running homebridge.

Screenshots

Eve

Overview Detail 1 Detail 2 Detail 3
Overview Detail 1 Detail 2 Detail 3

Home

Overview Air Purifer On/Off Air Purifer Fan Speed Air Purifier Detail
Overview Air Purifer On/Off Air Purifer Fan Speed Air Purifier Detail
Air Quality Overview Air Quality Detail Temperature Overview Temperature Detail
Air Quality Overview Air Quality Detail Temperature Overview Temperature Detail
Humidity Overview Humidity Detail CO2 Overview CO2 Detail
Humidity Overview Humidity Detail CO2 Overview CO2 Detail
LED Overview LED Detail LED Brightness CO2 Automation
LED Overview LED Detail LED Brightness CO2 Automation

Configuration

Installation

npm install homebridge-blueair

config.json

An explaination of the config is below, a config-example.json is also provided along with the plugin for ease of use.

For instructions on how to retrieve your apikey see here.

/// i-Series
  {
    "accessory": "BlueAir",
    "name": "BlueAir 680i",
    "airPurifierIndex": "0", //optional if you have multiple air purifiers
    "nameAirQuality": "Air Quality", //optional
    "nameTemperature": "Temperature", //optional
    "nameHumidity": "Humidity", //optional
    "nameCO2": "Carbon Dioxide", //optional
    "username": "BlueAir-Email",
    "password": "BlueAir-Password",
    "showTemperature": true, //show temp sensor
    "showHumidity": true, //show humidity sensor
    "showAirQuality": true, //show air quality sensor
    "showCO2": true, //show CO2 sensor
    "showLED": true, //register the air purifier's LED as a lightbulb service
    "getHistoricalStats": true //enable historical logging in Eve.app
},

/// Classic Series or Sense

{
    "accessory": "BlueAir",
    "name": "BlueAir Sense",
    "airPurifierIndex": "1", //optional, should match your actual device order
    "purifierOnly": true, //must be true for Classic/Sense+ device
    "username": "BlueAir-Email",
    "password": "BlueAir-Password"
    "showLED": true //register the air purifier's LED as a lightbulb service
},

/// Aware

{
    "accessory": "BlueAir",
    "name": "BlueAir Aware",
    "airPurifierIndex": "2", //optional, should match your actual device order
    "sensorOnly": true, //must be true for Aware device
    "nameAirQuality": "Air Quality", //optional
    "nameTemperature": "Temperature", //optional
    "nameHumidity": "Humidity", //optional
    "nameCO2": "Carbon Dioxide", //optional
    "username": "BlueAir-Email",
    "password": "BlueAir-Password",
    "showTemperature": true, //show temp sensor
    "showHumidity": true, //show humidity sensor
    "showAirQuality": true, //show air quality sensor
    "showCO2": true, //show CO2 sensor
    "getHistoricalStats": true //enable historical logging in Eve.app
}

Releases

See CHANGELOG.md

To-dos

See open enhancement issues

API research

There is no documented API for the BlueAir devices, through some API proxying with Charles I was able to find out they use the Foobot API backend for their intelligence and map all requests for get/set.

Postman collection and environment

I coallated all requests that my device made into an easy-to-use Postman collection.

You need to create a Postman Environment with the following variables in it to use the collection: Postman Environment

Thanks

This plugin is heavily based on (hacked together from) two other plugins, homebridge-efergy and homebridge-mi-air-purifier, without these plugins I could not have created the foundation on which this was built. Thanks to @luc-ass and @seikan for their work on these.

The fakegato-history plugin on which this is based was built by @simont77, without this, we wouldn't have pretty graphs to gawk at.