Thank you for the incredibly detailed and helpful responses! This clears up many of my questions and actually makes me much more excited about the Max. The upcoming WiFi functionality sounds perfect for my use case!
Just to confirm - yes, I mean taking the Max out of the box, powering it on, and registering it for API testing. Though at this point based on your responses there is little to no chance i would return it. I sent a message to setup a ticket and asked to speak to you.
I have set it up with a station I found that is close to my house in HA and have succesfully integrated it. Let me know if anything I did looks wrong.

I used the site and calculations to calculate AQI and EPA PM2.5. I plan to use this to take the API data for the MAX and import it into my HA.
# Template sensors with EXACT AirGradient EPA correction formulas and AQI calculation
# AirGradient REST sensor
rest:
- resource: "https://api.airgradient.com/public/api/v1/world/locations/measures/current"
scan_interval: 20
sensor:
- name: "Santa Rosa Air Data"
unique_id: "santa_rosa_air_data"
value_template: >
{% for station in value_json %}
{% if station.locationId == ***** %} #add station ID
{{ station.pm02 }}
{% endif %}
{% endfor %}
unit_of_measurement: "μg/m³"
device_class: pm25
json_attributes_path: "$[?(@.locationId==*****)]" # Add station ID
json_attributes:
- pm01
- pm02
- pm10
- atmp
- rhum
- rco2
- tvoc
template:
- sensor:
- name: "Santa Rosa PM2.5 EPA Corrected"
unique_id: "santa_rosa_pm25_epa"
state: >
{% set AGraw = state_attr('sensor.santa_rosa_air_data', 'pm02') | default(0) | float %}
{% set RHraw = state_attr('sensor.santa_rosa_air_data', 'rhum') | default(0) | float %}
{% if AGraw <= 0 %}
0
{% elif AGraw <= 20 %}
{# Band 1: PM2.5 = [0.524 x AGraw] – [0.0862 x RHraw] + 5.75 #}
{% set corrected = (0.524 * AGraw) - (0.0862 * RHraw) + 5.75 %}
{{ [corrected, 0] | max | round(1) }}
{% elif AGraw <= 30 %}
{# Band 2: PM2.5 = [0.786 x (AGraw/20 - 3/2) + 0.524 x (1 - (AGraw/20 - 3/2))] x AGraw – [0.0862 x RHraw] + 5.75 #}
{% set factor = AGraw/20 - 1.5 %}
{% set weight1 = 0.786 * factor %}
{% set weight2 = 0.524 * (1 - factor) %}
{% set corrected = (weight1 + weight2) * AGraw - (0.0862 * RHraw) + 5.75 %}
{{ [corrected, 0] | max | round(1) }}
{% elif AGraw <= 50 %}
{# Band 3: PM2.5 = [0.786 x AGraw] – [0.0862 x RHraw] + 5.75 #}
{% set corrected = (0.786 * AGraw) - (0.0862 * RHraw) + 5.75 %}
{{ [corrected, 0] | max | round(1) }}
{% else %}
{# Band 4: Complex formula for AGraw > 50 #}
{# PM2.5 = [0.69 x (AGraw/50 – 21/5) + 0.786 x (1 - (AGraw/50 – 21/5))] x AGraw – [0.0862 x RHraw x (1 - (AGraw/50 – 21/5))] + [2.966 x (AGraw/50 –21/5)] + [5.75 x (1 - (AGraw/50 – 21/5))] + [8.84 x (10-4) x AGraw^2 x (AGraw/50 – 21/5)] #}
{% set ratio = AGraw/50 - 21/5 %}
{% set ratio_complement = 1 - ratio %}
{% set pm_factor = (0.69 * ratio) + (0.786 * ratio_complement) %}
{% set rh_factor = 0.0862 * RHraw * ratio_complement %}
{% set constant_factor = (2.966 * ratio) + (5.75 * ratio_complement) %}
{% set quadratic_factor = 8.84e-4 * (AGraw * AGraw) * ratio %}
{% set corrected = (pm_factor * AGraw) - rh_factor + constant_factor + quadratic_factor %}
{{ [corrected, 0] | max | round(1) }}
{% endif %}
unit_of_measurement: "μg/m³"
device_class: pm25
- name: "Santa Rosa CO2"
unique_id: "santa_rosa_co2"
state: "{{ state_attr('sensor.santa_rosa_air_data', 'rco2') | default(0) }}"
unit_of_measurement: "ppm"
device_class: carbon_dioxide
- name: "Santa Rosa AQI"
unique_id: "santa_rosa_aqi"
state: >
{% set pm25 = states('sensor.santa_rosa_pm2_5_epa_corrected') | default(0) | float %}
{% if pm25 <= 12.0 %}
{# Good: 0-50 AQI #}
{% set aqi = ((50 - 0) / (12.0 - 0.0)) * (pm25 - 0.0) + 0 %}
{% elif pm25 <= 35.4 %}
{# Moderate: 51-100 AQI #}
{% set aqi = ((100 - 51) / (35.4 - 12.1)) * (pm25 - 12.1) + 51 %}
{% elif pm25 <= 55.4 %}
{# Unhealthy for Sensitive Groups: 101-150 AQI #}
{% set aqi = ((150 - 101) / (55.4 - 35.5)) * (pm25 - 35.5) + 101 %}
{% elif pm25 <= 150.4 %}
{# Unhealthy: 151-200 AQI #}
{% set aqi = ((200 - 151) / (150.4 - 55.5)) * (pm25 - 55.5) + 151 %}
{% elif pm25 <= 250.4 %}
{# Very Unhealthy: 201-300 AQI #}
{% set aqi = ((300 - 201) / (250.4 - 150.5)) * (pm25 - 150.5) + 201 %}
{% elif pm25 <= 350.4 %}
{# Hazardous: 301-400 AQI #}
{% set aqi = ((400 - 301) / (350.4 - 250.5)) * (pm25 - 250.5) + 301 %}
{% else %}
{# Extreme Hazardous: 401-500 AQI #}
{% set aqi = ((500 - 401) / (500.4 - 350.5)) * (pm25 - 350.5) + 401 %}
{% endif %}
{{ aqi | round(0) }}
unit_of_measurement: "AQI"
icon: mdi:air-filter
- name: "Santa Rosa AQI Category"
unique_id: "santa_rosa_aqi_category"
state: >
{% set aqi = states('sensor.santa_rosa_aqi') | default(0) | int %}
{% if aqi <= 50 %}
Good
{% elif aqi <= 100 %}
Moderate
{% elif aqi <= 150 %}
Unhealthy for Sensitive Groups
{% elif aqi <= 200 %}
Unhealthy
{% elif aqi <= 300 %}
Very Unhealthy
{% else %}
Hazardous
{% endif %}
icon: >
{% set aqi = states('sensor.santa_rosa_aqi') | default(0) | int %}
{% if aqi <= 50 %}
mdi:emoticon-happy
{% elif aqi <= 100 %}
mdi:emoticon-neutral
{% elif aqi <= 150 %}
mdi:emoticon-sad
{% elif aqi <= 200 %}
mdi:emoticon-dead
{% elif aqi <= 300 %}
mdi:biohazard
{% else %}
mdi:skull
{% endif %}
Thank you again

