Skip to content

Releases: GGadash/AirGradient-Test-API-App

AirGradient Test API App v2.3.0-rc.2

Pre-release

Choose a tag to compare

@GGadash GGadash released this 17 Sep 02:07

AirGradient Test API App v2.3.0-rc.2

Release candidate — for testing and demonstration. The Python + localhost app remains the main product. This update adds compact parameter/value lists to map popups and device cards in both editions.

Install and run

  1. Install Python from python.org. Python 3.9+ is the compatibility minimum; use a currently supported stable version for a new setup. Windows setup · macOS downloads · Linux guidance.
  2. Connect to the internet to fetch live API readings and load online map/library resources.
  3. Download AirGradient-Test-API-App-v2.3.0-rc.2.zip from this release's Assets and extract it.
  4. Open a terminal in the extracted folder. Run py serve.py on Windows or python3 serve.py on macOS/Linux.
  5. Open the exact local URL printed by Python. Leave the terminal open; stop it with Ctrl+C.

No extra Python packages are needed. Do not open the HTML directly.
Short setup guide ·
Full user guide

Supplementary web preview

The Python + localhost app remains the main product. For convenient viewing
without installing Python, open the supplementary GitHub Pages preview.
Use the main app for the fuller experience and better results when testing the API:
on-demand upstream requests, configurable devices, correction selection, and
permission-based hourly access. It does not improve underlying sensor accuracy.

Main local app (recommended) Supplementary website
Install Python, run serve.py, open the printed local URL Open the website; visitors need only internet and a browser
Requests data on demand, subject to API cadence/cache Displays snapshots collected on a nominal 15-minute GitHub schedule
Device controls, corrected/raw selection, illustrative AQI, authorized hourly history Five fixed devices, raw PM2.5, returned fields, world map, and published JSON
Tokens stay in your local server's memory No token entry or private/authenticated data

The page labels itself as supplementary and links back to the main download.
Reload published data only reloads the latest published snapshot; it does not
trigger AirGradient collection. GitHub scheduling/deployment delays add latency.
Measurement time and per-device collection time are displayed separately in UTC.
Failures may retain earlier readings with explicit errors and original timestamps;
missing readings remain unavailable. The browser checks for published updates every
five minutes while visible. Readings older than 20 minutes and collection gaps over
45 minutes are flagged. These are demo thresholds, not a service guarantee.

GitHub may disable scheduled collection after 60 days without repository activity.
If updates stop, check the Pages workflow
or use the main local app. Full supplementary guide.

Air Quality Data: changes in this release candidate

  • Click a map location to inspect PM1/2.5/10, particle count, CO2, NO2, O3, temperature, RH, pressure and all additional returned measurements in small rows.
  • Show the same parameter/value list on every device card. Keep PM2.5/AQI prominent; NO2/O3 now use the same styling as other parameters.
  • Explain N/A (known unsupported), N/D (expected or returned field without data), and — (not reported, support unknown), without guessing capability from absence.
  • Preserve zeros, negative-value warnings, field units, timestamps and unknown fields. Original JSON remains available.
  • Fix main-map marker clicks so the popup remains open after selecting a device; constrain popup height for scrolling on smaller screens.
  • Update guides and local/published wiki. Device order and saved preferences remain unchanged.
  • Use “Air Quality Data” in relevant app, documentation and wiki headings.

Optional project support

https://ko-fi.com/s/3f1e7ff9a0 · Gadash on Ko-fi.
Support is voluntary; the app remains free under MIT-0. The repository's Sponsor section offers the same links.

License

MIT No Attribution (MIT-0). Freely use, change, share, and sell the original
code and documentation. Attribution is not required; optional credit to Akila DJ
is welcome. No requirement to publish changes or use the same license. Provided
as is, without warranty. Third-party data, libraries, and maps keep their own terms.

Full project license ·
Official MIT-0 license ·
Third-party notices

Testing scope and limitations

Validation covers Python/JavaScript syntax, release ZIP integrity, data handling
and cross-edition parameter-list consistency, including absence notation, unknown
fields, zero/negative values and units. Browser checks exercise clicked popups,
card values, mobile overflow and the main app's correction selector. Authenticated
hourly history requires an authorized token and was not live-tested. This is a
release candidate, not an accuracy certification or an official AirGradient app.

The ZIP distributes the main local app plus the supplementary website source.
Generated live snapshots are not bundled. GitHub also provides source ZIP/tar
downloads; the named app ZIP includes an additional per-file checksum manifest.
The supplementary hosted page is available separately at the link above.

AirGradient Test API App v2.3.0-rc.1

Pre-release

Choose a tag to compare

@GGadash GGadash released this 16 Sep 20:43

AirGradient Test API App v2.3.0-rc.1

Release candidate — for testing and demonstration. The Python + localhost app remains the main product. This update adds ESYair Pro as the first of five devices and displays API-reported NO2/O3 in ppb.

Install and run

  1. Install Python from python.org. Python 3.9+ is the compatibility minimum; use a currently supported stable version for a new setup. Windows setup · macOS downloads · Linux guidance.
  2. Connect to the internet to fetch live API readings and load online map/library resources.
  3. Download AirGradient-Test-API-App-v2.3.0-rc.1.zip from this release's Assets and extract it.
  4. Open a terminal in the extracted folder. Run py serve.py on Windows or python3 serve.py on macOS/Linux.
  5. Open the exact local URL printed by Python. Leave the terminal open; stop it with Ctrl+C.

No extra Python packages are needed. Do not open the HTML directly.
Short setup guide ·
Full user guide

Supplementary web preview

The Python + localhost app remains the main product. For convenient viewing
without installing Python, open the supplementary GitHub Pages preview.
Use the main app for the fuller experience and better results when testing the API:
on-demand upstream requests, configurable devices, correction selection, and
permission-based hourly access. It does not improve underlying sensor accuracy.

Main local app (recommended) Supplementary website
Install Python, run serve.py, open the printed local URL Open the website; visitors need only internet and a browser
Requests data on demand, subject to API cadence/cache Displays snapshots collected on a nominal 15-minute GitHub schedule
Device controls, corrected/raw selection, illustrative AQI, authorized hourly history Five fixed devices, raw PM2.5, returned fields, world map, and published JSON
Tokens stay in your local server's memory No token entry or private/authenticated data

The page labels itself as supplementary and links back to the main download.
Reload published data only reloads the latest published snapshot; it does not
trigger AirGradient collection. GitHub scheduling/deployment delays add latency.
Measurement time and per-device collection time are displayed separately in UTC.
Failures may retain earlier readings with explicit errors and original timestamps;
missing readings remain unavailable. The browser checks for published updates every
five minutes while visible. Readings older than 20 minutes and collection gaps over
45 minutes are flagged. These are demo thresholds, not a service guarantee.

GitHub may disable scheduled collection after 60 days without repository activity.
If updates stop, check the Pages workflow
or use the main local app. Full supplementary guide.

Changes in this release candidate

  • Added ESYair Pro (196780) first. Original four devices retain their order as slots 2–5 in both editions; responsive layout accommodates five cards.
  • Added NO2/O3 concentration values in ppb to cards, main-app detail tiles and parameter metadata. Both are selectable on the main map. Raw electrode fields use mV when supplied; NOx index remains separate.
  • Preserve and flag negative gas readings; preserve zero; show missing/null values as unavailable. Positive numbers alone do not prove accuracy.
  • Migrate saved device/display settings on the same browser origin, prepend ESYair without duplication and move the non-gas Max replacement control to slot 3.
  • Updated parameter guides, testing/demo disclaimers and credits/licensing. Added the published wiki, with identical local Markdown copies in wiki/.
  • Kept optional Ko-fi support, main-download button at the top, map above cards and full main-release link at the bottom of the supplementary page.

Optional project support

https://ko-fi.com/s/3f1e7ff9a0 · Gadash on Ko-fi.
Support is voluntary; the app remains free under MIT-0. The repository's Sponsor section offers the same links.

License

MIT No Attribution (MIT-0). Freely use, change, share, and sell the original
code and documentation. Attribution is not required; optional credit to Akila DJ
is welcome. No requirement to publish changes or use the same license. Provided
as is, without warranty. Third-party data, libraries, and maps keep their own terms.

Full project license ·
Official MIT-0 license ·
Third-party notices

Testing scope and limitations

Validation covers Python/JavaScript syntax, release ZIP integrity, six Python tests
and ten JavaScript tests, including gas zero/negative/null handling, four-to-five
snapshot transitions, device order and saved-preference migration. Desktop/mobile
browser checks cover both editions, five successful public requests, map gas
selection, slot 3 replacement and the top/bottom release links. Negative gas values
were observed upstream and remain flagged. Authenticated hourly history requires
an authorized user token and was not live-tested. This is a release candidate,
not an accuracy certification or an official AirGradient product.

The ZIP distributes the main local app plus the supplementary website source.
Generated live snapshots are not bundled. GitHub also provides source ZIP/tar
downloads; the named app ZIP includes an additional per-file checksum manifest.
The supplementary hosted page is available separately at the link above.

AirGradient Test API App v2.2.0-rc.2

Pre-release

Choose a tag to compare

@GGadash GGadash released this 13 Sep 16:17

AirGradient Test API App v2.2.0-rc.2

Release candidate — for testing and demonstration. The Python + localhost app remains the main product. This update refines the supplementary web preview and adds optional Ko-fi support links.

Install and run

  1. Install Python from python.org. Python 3.9+ is the compatibility minimum; use a currently supported stable version for a new setup. Windows setup · macOS downloads · Linux guidance.
  2. Connect to the internet to fetch live API readings and load online map/library resources.
  3. Download AirGradient-Test-API-App-v2.2.0-rc.2.zip from this release's Assets and extract it.
  4. Open a terminal in the extracted folder. Run py serve.py on Windows or python3 serve.py on macOS/Linux.
  5. Open the exact local URL printed by Python. Leave the terminal open; stop it with Ctrl+C.

No extra Python packages are needed. Do not open the HTML directly.
Short setup guide ·
Full user guide

Supplementary web preview

The Python + localhost app remains the main product. For convenient viewing
without installing Python, open the supplementary GitHub Pages preview.
Use the main app for the fuller experience and better results when testing the API:
on-demand upstream requests, configurable devices, correction selection, and
permission-based hourly access. It does not improve underlying sensor accuracy.

Main local app (recommended) Supplementary website
Install Python, run serve.py, open the printed local URL Open the website; visitors need only internet and a browser
Requests data on demand, subject to API cadence/cache Displays snapshots collected on a nominal 15-minute GitHub schedule
Device controls, corrected/raw selection, illustrative AQI, authorized hourly history Four fixed devices, raw PM2.5, returned fields, world map, and published JSON
Tokens stay in your local server's memory No token entry or private/authenticated data

The page labels itself as supplementary and links back to the main download.
Reload published data only reloads the latest published snapshot; it does not
trigger AirGradient collection. GitHub scheduling/deployment delays add latency.
Measurement time and per-device collection time are displayed separately in UTC.
Failures may retain earlier readings with explicit errors and original timestamps;
missing readings remain unavailable. The browser checks for published updates every
five minutes while visible. Readings older than 20 minutes and collection gaps over
45 minutes are flagged. These are demo thresholds, not a service guarantee.

GitHub may disable scheduled collection after 60 days without repository activity.
If updates stop, check the Pages workflow
or use the main local app. Full supplementary guide.

Changes in this release candidate

  • Moved Device map above Latest published readings by device in the supplementary page.
  • Kept the main-download button at the top and added the full main-release URL as a text link at the very bottom, wrapping on small screens.
  • Added GitHub sponsorship configuration with Ko-fi username gadash and the project-specific support link.
  • Added optional support information to the user guides and supplementary page. The main Python + localhost app remains the primary version.

Optional project support

https://ko-fi.com/s/3f1e7ff9a0 · Gadash on Ko-fi.
Support is voluntary; the app remains free under MIT-0. The repository's Sponsor section offers the same links.

License

MIT No Attribution (MIT-0). Freely use, change, share, and sell the original
code and documentation. Attribution is not required; optional credit to Akila DJ
is welcome. No requirement to publish changes or use the same license. Provided
as is, without warranty. Third-party data, libraries, and maps keep their own terms.

Full project license ·
Official MIT-0 license ·
Third-party notices

Testing scope and limitations

The release checks cover Python and inline JavaScript syntax and ZIP integrity.
Regression tests cover zero/null values, stale timestamps, and retained readings
after failed collection. Local smoke checks cover the served page, API status/error routes, and the renamed
client/server response header. Authenticated hourly history needs a suitable user
token and has not been live-tested. Original device-selection readings are
historical notes, not a guarantee that devices are currently online. AQI values
are illustrative; this is not a production server or an official AirGradient app.

The ZIP distributes the main local app plus the supplementary website source.
Generated live snapshots are not bundled. GitHub also provides source ZIP/tar
downloads; the named app ZIP includes an additional per-file checksum manifest.
The supplementary hosted page is available separately at the link above.

AirGradient Test API App v2.2.0-rc.1

Pre-release

Choose a tag to compare

@GGadash GGadash released this 13 Sep 15:33

AirGradient Test API App v2.2.0-rc.1

Release candidate — for testing and demonstration. The Python + localhost app remains the main product. This release adds a
supplementary GitHub Pages preview for easier access without installation.

Install and run

  1. Install Python from python.org. Python 3.9+ is the compatibility minimum; use a currently supported stable version for a new setup. Windows setup · macOS downloads · Linux guidance.
  2. Connect to the internet to fetch live API readings and load online map/library resources.
  3. Download AirGradient-Test-API-App-v2.2.0-rc.1.zip from this release's Assets and extract it.
  4. Open a terminal in the extracted folder. Run py serve.py on Windows or python3 serve.py on macOS/Linux.
  5. Open the exact local URL printed by Python. Leave the terminal open; stop it with Ctrl+C.

No extra Python packages are needed. Do not open the HTML directly.
Short setup guide ·
Full user guide

Supplementary web preview

The Python + localhost app remains the main product. For convenient viewing
without installing Python, open the supplementary GitHub Pages preview.
Use the main app for the fuller experience and better results when testing the API:
on-demand upstream requests, configurable devices, correction selection, and
permission-based hourly access. It does not improve underlying sensor accuracy.

Main local app (recommended) Supplementary website
Install Python, run serve.py, open the printed local URL Open the website; visitors need only internet and a browser
Requests data on demand, subject to API cadence/cache Displays snapshots collected on a nominal 15-minute GitHub schedule
Device controls, corrected/raw selection, illustrative AQI, authorized hourly history Four fixed devices, raw PM2.5, returned fields, world map, and published JSON
Tokens stay in your local server's memory No token entry or private/authenticated data

The page labels itself as supplementary and links back to the main download.
Reload published data only reloads the latest published snapshot; it does not
trigger AirGradient collection. GitHub scheduling/deployment delays add latency.
Measurement time and per-device collection time are displayed separately in UTC.
Failures may retain earlier readings with explicit errors and original timestamps;
missing readings remain unavailable. The browser checks for published updates every
five minutes while visible. Readings older than 20 minutes and collection gaps over
45 minutes are flagged. These are demo thresholds, not a service guarantee.

GitHub may disable scheduled collection after 60 days without repository activity.
If updates stop, check the Pages workflow
or use the main local app. Full supplementary guide.

Included changes

  • Main local app preserved, with updated release information and a supplementary-page link.
  • Added the labelled web preview, public-data collector, nominal 15-minute publishing workflow, and tests for data handling and freshness.
  • Markdown user guide, top-level quick guide, official Python installation links, and explicit internet requirements.
  • Setup and license information visible near the top of the app.
  • Git exclusions, consistent line endings, automated checks, and a portable source ZIP builder.
  • A checksum sidecar for the ZIP and SHA256SUMS.txt inside it for individual files.

License

MIT No Attribution (MIT-0). Freely use, change, share, and sell the original
code and documentation. Attribution is not required; optional credit to Akila DJ
is welcome. No requirement to publish changes or use the same license. Provided
as is, without warranty. Third-party data, libraries, and maps keep their own terms.

Full project license ·
Official MIT-0 license ·
Third-party notices

Testing scope and limitations

The release checks cover Python and inline JavaScript syntax and ZIP integrity.
Regression tests cover zero/null values, stale timestamps, and retained readings
after failed collection. Local smoke checks cover the served page, API status/error routes, and the renamed
client/server response header. Authenticated hourly history needs a suitable user
token and has not been live-tested. Original device-selection readings are
historical notes, not a guarantee that devices are currently online. AQI values
are illustrative; this is not a production server or an official AirGradient app.

The ZIP distributes the main local app plus the supplementary website source.
Generated live snapshots are not bundled. GitHub also provides source ZIP/tar
downloads; the named app ZIP includes an additional per-file checksum manifest.
The supplementary hosted page is available separately at the link above.

AirGradient Test API App v2.1.0-rc.1

Pre-release

Choose a tag to compare

@GGadash GGadash released this 13 Sep 03:52

AirGradient Test API App v2.1.0-rc.1

Release candidate — for testing and demonstration. This is the first GitHub
release of the renamed application, based on the supplied AirGradient Max Atlas v2.1.

Install and run

  1. Install Python from python.org. Python 3.9+ is the compatibility minimum; use a currently supported stable version for a new setup. Windows setup · macOS downloads · Linux guidance.
  2. Connect to the internet to fetch live API readings and load online map/library resources.
  3. Download AirGradient-Test-API-App-v2.1.0-rc.1.zip from this release's Assets and extract it.
  4. Open a terminal in the extracted folder. Run py serve.py on Windows or python3 serve.py on macOS/Linux.
  5. Open the exact local URL printed by Python. Leave the terminal open; stop it with Ctrl+C.

No extra Python packages are needed. Do not open the HTML directly.
Short setup guide ·
Full user guide

Included changes

  • Project, HTML filename, app title, launcher, and internal app identifiers renamed to AirGradient Test API App.
  • Markdown user guide, top-level quick guide, official Python installation links, and explicit internet requirements.
  • Setup and license information visible near the top of the app.
  • Git exclusions, consistent line endings, automated checks, and a portable source ZIP builder.
  • A checksum sidecar for the ZIP and SHA256SUMS.txt inside it for individual files.

License

MIT No Attribution (MIT-0). Freely use, change, share, and sell the original
code and documentation. Attribution is not required; optional credit to Akila DJ
is welcome. No requirement to publish changes or use the same license. Provided
as is, without warranty. Third-party data, libraries, and maps keep their own terms.

Full project license ·
Official MIT-0 license ·
Third-party notices

Testing scope and limitations

The release checks cover Python and inline JavaScript syntax and ZIP integrity.
Local smoke checks cover the served page, API status/error routes, and the renamed
client/server response header. Authenticated hourly history needs a suitable user
token and has not been live-tested. Original device-selection readings are
historical notes, not a guarantee that devices are currently online. AQI values
are illustrative; this is not a production server or an official AirGradient app.

This release distributes a local application, not a hosted website. GitHub's
automatic source ZIP/tar downloads are also supported; the named app ZIP includes
an additional per-file checksum manifest.