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) |