Sensor JSON Documentation

This list contains definitions for fields that can be obtained from a sensor’s local JSON data. Many of these fields are also the same as the information recorded to the SD card. This documentation is current for the 7.04 version of sensor firmware.

For any PurpleAir sensor with two laser counters, one laser counter is referred to as Channel A, and the other is referred to as Channel B. Further information can be found in our What are Channel A and Channel B article.

Sensor Information Fields

The following fields provide information about sensor hardware, registration, and operation:

Name Description
SensorId The Device ID for the sensor. This is identical to the MAC address, but with leading 0’s omitted in each octet
DateTime The current time reported by the device. This is provided in UTC and ISO 8601 format
Geo This is the name of the PurpleAir-**** WiFI network displayed for device setup
Mem A call to the ESP function getFreeHeap()
memfrag A call to the ESP function getHeapFragmentation()
memfb A call to the ESP function getMaxFreeBlockSize()
memcs A call to the ESP function getFreeContStack()
Id A count of how many times the /json endpoint has been accessed since the device last powered on
lat This will roughly, but not exactly, match the latitude set during registration
lon This will roughly, but not exactly, match the longitude set during registration
loggingrate The rate at which the sensor is reporting data
place Whether the sensor is registered as indoor or outdoor
version The firmware version in use by the device
uptime How long in seconds the sensor has been running for
rssi The WiFi signal strength of the connected WiFi network
period The number of seconds the last 2-minute average recorded data for. This should typically have a value of 120
httpsuccess The number of successful HTTP requests sent by the device
httpsends The total number of HTTP requests sent by the device
hardwareversion This indicates the generation of the device. The first PurpleAir devices are 1.0. The PurpleAir Classic and PA-I Indoor are 2.0. The PurpleAir Touch, Flex, and Zen are 3.0
hardwarediscovered A label indicating all hardware the device board can see. This includes things such as the laser counters and BME environmental sensor
wlstate Whether the device is connected to a WiFi connection
ssid The SSID of the connected WiFi network
response This indicates the HTTP response code of sending data to the data processor. This field is only present if a Data Processor was set for your sensor during registration. Currently, Weather Underground is set as the first data processor by default.
response_date This indicates the time the sensor last received a response when sending data to a data processor. This field is only present if a Data Processor was set for your sensor during registration. Currently, Weather Underground is set as the first data processor by default.

Sensor Data Fields

The following fields provide measurements taken by the device:

Name Description
Adc The analog voltage on ADC input of the PurpleAir sensor control board
current_temp_f The temperature measured in Fahrenheit. This is uncorrected
current_humidity The relative humidity as measured by the device. This is uncorrected
current_dewpoint_f The dewpoint as measured by the device
pressure The barometric pressure measured in millibar
current_temp_f_680 The temperature as measured by the BME680 if the device has one. This is the same as current_temp_f, unless the device has both a BME280 and a BME680/BME688
current_humidity_680 The humidity as measured by the BME680 if the device has one. This is the same as current_humidity, unless the device has both a BME280 and a BME680/BME688
current_dewpoint_f_680 The dewpoint as measured by the BME680 if the device has one. This is the same as current_dewpoint_f, unless the device has both a BME280 and a BME680/BME688
pressure_680 The barometric pressure as measured by the BME680 if the device has one. This is the same as pressure, unless the device has both a BME280 and a BME680/BME688
gas_680 VOC values read by the BME sensor. NaN means that there is no reading. These readings are still experimental
p25aqic_b The RGB value for AQI LEDs. This is based on the US EPA PM2.5 AQI readings from channel B
pm2.5_aqi_b US EPA PM2.5 AQI as measured by channel B
pm1_0_cf_1_b PM1 readings from channel B using the CF=1 estimation of density
p_0_3_um_b Channel B 0.3-micrometer and larger particle counts per deciliter of air
pm2_5_cf_1_b PM2.5 readings from channel B using the CF=1 estimation of density
p_0_5_um_b Channel B 0.5-micrometer and larger particle counts per deciliter of air
pm10_0_cf_1_b PM10 readings from channel B using the CF=1 estimation of density
p_1_0_um_b Channel B 1.0-micrometer and larger particle counts per deciliter of air
pm1_0_atm_b PM1 readings from channel B using the ATM estimation of density
p_2_5_um_b Channel B 2.5-micrometer and larger particle counts per deciliter of air
pm2_5_atm_b PM2.5 readings from channel B using the ATM estimation of density
p_5_0_um_b Channel B 5.0-micrometer and larger particle counts per deciliter of air
pm10_0_atm_b PM10 readings from channel B using the ATM estimation of density
p_10_0_um_b Channel B 10.0-micrometer particle counts per deciliter of air
p25aqic The RGB value for AQI LEDs. This is based on the US EPA PM2.5 AQI readings from channel A
pm2.5_aqi US EPA PM2.5 AQI as measured by channel A
pm1_0_cf_1 PM1 readings from channel A using the CF=1 estimation of density
p_0_3_um Channel A 0.3-micrometer and larger particle counts per deciliter of air
pm2_5_cf_1 PM2.5 readings from channel A using the CF=1 estimation of density
p_0_5_um Channel A 0.5-micrometer and larger particle counts per deciliter of air
pm10_0_cf_1 PM10 readings from channel A using the CF=1 estimation of density
p_1_0_um Channel A 1.0-micrometer and larger particle counts per deciliter of air
pm1_0_atm PM1 readings from channel A using the ATM estimation of density
p_2_5_um Channel A 2.5-micrometer and larger particle counts per deciliter of air
pm2_5_atm PM2.5 readings from channel A using the ATM estimation of density
p_5_0_um Channel A 5.0-micrometer and larger particle counts per deciliter of air
pm10_0_atm PM10 readings from channel A using the ATM estimation of density
p_10_0_um Channel A 10.0-micrometer particle counts per deciliter of air

Status Fields

Fields named ‘status_*’, where ‘*’ is replaced with a number, are WiFi Status Indicators that track different information for the device. On the sensor’s web pages, these are displayed in the footer as a row of colored boxes.

Status fields can have the following values:

number color meaning
0 Grey Not configured
1 Orange In Progress
2 Green Success
3 Red Error

Available status fields are listed below:

Name Description
status_0 NTP: Network Time Protocol time sync
status_1 LOC: Google location lookup
status_2 UPD: Update check
status_3 PAA: Connection to PurpleAir servers
status_4 TSA: ThingSpeak A Channel (no longer used)
status_5 TSS: ThingSpeak A Secondary (no longer used)
status_6 3RD: Status for Data Processor #1 (if setup in the sensor’s registration)
status_8 TSB: ThingSpeak B Channel (no longer used)
status_9 TSS: ThingSpeak B Secondary (no longer used)
status_10 3RD: Status for Data Processor #2 (if setup in the sensor’s registration)