Omahub
← All plugins
M

Awair Local Air Quality

by Michiel Ryvers

Discover local Awair devices and show live air-quality readings.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
fe1c1d6
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
fe1c1d6
Reviewed
1 month ago

The plugin is a local network widget that discovers Awair devices via mDNS and subnet scanning, then polls their HTTP API. It writes only to user state files with restrictive permissions and performs no destructive or exfiltration actions. The network scanning is disclosed in the README and is expected for this functionality.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/michielryvers/omarchy-awair --enable
Widgets #bar #system

Awair Local for Omarchy

An Omarchy Quattro bar widget that discovers Awair devices on the local network, polls their Local API, and displays live air-quality readings.

The bar shows the highest CO2 reading from all discovered devices. It is grey below 800 ppm, orange from 800 through 1200 ppm, and red above 1200 ppm. Click the widget for all sensor readings; middle-click or use Rescan to force LAN discovery.

Requirements

  • Omarchy with the Quattro shell plugin system
  • bash, curl, jq, ip, and avahi-browse
  • Awair 2nd Edition, Element, Omni, or another device with Local API support
  • Local API enabled in the Awair Home app

No Awair account, cloud API, access token, package installation, or elevated privileges are used.

Install

omarchy plugin add https://github.com/michielryvers/omarchy-awair.git --enable

The widget defaults to the right side of the bar. If needed, place it there explicitly:

omarchy bar move michielryvers.awair-local --section right

Remove

omarchy plugin remove michielryvers.awair-local

Removal leaves local preferences and history in place so reinstalling does not lose them. To erase those too:

rm -rf ~/.local/state/omarchy/awair-local

Discovery

The helper first polls cached devices. When discovery is needed it combines Avahi results, the kernel neighbour table, and each active interface's local /24. Failed automatic scans are throttled for five minutes; Rescan always runs immediately. Sensor data is fetched directly from /air-data/latest every 10 seconds and never leaves the LAN.

Samples are retained locally for 24 hours in ~/.local/state/omarchy/awair-local/history.json. The popup charts show a downsampled six-hour window so long-running history does not make the shell payload unnecessarily large.

The Local API documents temperature and dew point as Celsius and does not return unit metadata. The widget converts those values locally: Auto uses the system timezone's country and falls back to the same narrow locale rule as Omarchy Weather, while each detected device can be pinned to °C or °F from the gear menu. The same menu supports nicknames, visible-sensor selection, rescanning, and removing a device and its local history.

Privacy and security

The runtime helper only makes unauthenticated HTTP requests to candidate hosts on the local network. It does not contact Awair's cloud service or send sensor readings off the LAN. Discovery scans active local /24 networks and may briefly connect to port 80 on other local devices. Preferences and up to 24 hours of history are stored in user-owned files with mode 0600.

Omarchy plugins run unsandboxed as the current user. Review the repository before installing or updating it.

Development

omarchy plugin validate .
qmllint -I "$OMARCHY_PATH/shell" BarWidget.qml
./awair-local scan

License

MIT