Source code for python_awair.indices
"""Indices dict with attribute access."""
from python_awair.attrdict import AttrDict
[docs]class Indices(AttrDict):
"""Indices of an AwairDevice.
An Indices object represents a set of "index" values for a
set of sensors of a given AwairDevice. Essentially, the "index"
is a bit like a quality score - and Awair has devised a set of
quality levels for a variety of their sensors. The "index" is given
as a *float* between -4 and 4, but the absolute value is what
really matters - just ignore the sign. As a value approaches 4.0,
it is considered "worse". As it approaches 0, it is considered
"better".
A mapping of index ranges and values per-sensor can be found
at Awair's `API documentation`_ - that list is authoritative.
.. _`API documentation`:
https://docs.developer.getawair.com/?version=latest#data-guide
The Indices object is a subclass of AttrDict, and thus its values
are accessible via string keys - like *foo["bar"]* - or via dot-notation:
*foo.bar*.
The index names from the Awair API are not entirely user-friendly,
so we've aliased known indices to more descriptive values:
.. table::
======== ==========================
API name python_awair name
======== ==========================
temp temperature
humid humidity
co2 carbon_dioxide
voc volatile_organic_compounds
pm25 particulate_matter_2_5
======== ==========================
Any new indices added by an Awair device before this library
is updated will be accessible via their API name, rather than
a friendly name.
.. note::
The 1st generation Awair device will have a "dust" index,
since it has an aggregate pm2.5/pm10 dust sensor (and cannot
distinguish between those two sizes).
.. note::
Do not assume that every sensor present on a device will
also have a corresponding "index"; this is not the case.
"""
def __repr__(self) -> str:
"""Pretty-print."""
return f"Indices({super().__repr__()})"