Source code for python_awair.sensors
"""Sensors dict with attribute-like access."""
from python_awair.attrdict import AttrDict
[docs]class Sensors(AttrDict):
"""Sensors of an AwairDevice.
A Sensors object represents a set of sensors and corresponding
values for a given Awair device, at a given point in time. The
object itself essentially inherits from *dict*, and thus one
can access sensor values by their string keys, and it is iterable -
just like a dict.
However, the class also supports getting, setting, and deleting
sensor values via dot-notation; like an attribute or property.
For example, given a *foo* Sensors object with a "bar" sensor, you could
access that value either by calling *foo["bar"]* or *foo.bar*.
The sensor names from the Awair API are not entirely user-friendly,
so we've aliased known sensors 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
lux illuminance
spl_a sound_pressure_level
======== ==========================
A more thorough description of available sensors and their
units is available on `Awair's API documentation`_.
Any new sensors 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 contains an "aggregate dust"
sensor, which measures a range of particle sizes. It cannot
distinguish between pm2.5 and pm10 particles.
.. _`Awair's API documentation`:
https://docs.developer.getawair.com/?version=latest#data-guide
"""
def __repr__(self) -> str:
"""Pretty-print."""
return f"Sensors({super().__repr__()})"