aioapcaccess
An async implementation of apcaccess. This library provides programmatic access to the status information provided by apcupsd over its Network Information Server (NIS) which usually listens on TCP port 3551.
This project is a re-implementation of the synchronous version flyte/apcaccess using asyncio, where a lot of the logic is borrowed and improved.
Install
Install with pip:
$ pip install aioapcaccess
Usage
The primary API for getting the status from APCUPS is aioapcaccess.request_status.
It returns a collections.OrderedDict mapping from field names (e.g., "SERIALNO") to
their values in string format. What fields are available will depend on the model of
your APC UPS, see APCUPSD manual for details.
The following example shows a typical usage of aioapcaccess
import asyncio
import aioapcaccess
async def main():
result = await aioapcaccess.request_status(host='localhost', port=3551)
print(result)
if __name__ == '__main__':
asyncio.run(main())
The example above will print the following (prettified and simplified):
OrderedDict([
('APC', '001,036,0879'),
...,
('BATTV', '13.7 Volts'),
('CUMONBATT', '0 Seconds')
))])
In addition to request_status, we offer the following functions for advanced uses:
aioapcaccess.request_raw_statusfor getting raw (unparsed) status inbytes.aioapcaccess.parse_raw_statusfor parsing thebytesto the dict shown above.aioapcaccess.split_unitfor splitting the supported unit suffix from the value strings, returning a tuple(value, unit). You can checkaioapcaccess.UNITSfor the set of supported units. Note that units are also in the forms of strings (e.g., "Seconds", "Volts"). If no valid units are found in the value strings,unitwill beNone.
Metadata
Release files for aioapcaccess 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aioapcaccess-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / aioapcaccess-1.0.0-py3-none-any.whl
| Download URL | aioapcaccess-1.0.0-py3-none-any.whl |
|---|---|
| Size | 5.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6c8e6bfd6e7d1969a020fd762dd9c964a646aab31b14e7a36cfdf3051cdb10f9
|
|
BLAKE2b-256 checksum How to use checksums |
0d064e4b04d7efdc81ae4f162184f75325c3278a0a03bbe5a10d9d2737b56fbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2025.
Transparency log