brother
Python wrapper for getting data from Brother laser and inkjet printers via SNMP.
What it is and what it does
Brother is an async Python wrapper for querying Brother laser and inkjet printers via SNMP. It abstracts the low-level SNMP protocol details and provides a simple interface to retrieve printer state, model, firmware version, serial number, and sensor readings. The package uses dacite for data deserialization and pyasn1 for ASN.1 encoding.
The typical workflow is to create a Brother instance with a printer's hostname or IP and printer type, call async_update() to fetch current data, and then access properties like status and model. It supports both internal and external SNMP engines, making it suitable for integration into monitoring systems or home automation platforms that need to track printer health and consumable levels.
Use it for:
- Monitor Brother printer status and alert when toner or ink is low or paper jams occur.
- Collect printer metrics for a network monitoring dashboard.
- Integrate printer data into home automation or IoT systems for device status tracking.
- Build a multi-printer inventory system that queries several Brother devices on a network.
- Log printer events and sensor readings for maintenance and usage analytics.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Queries Brother laser and inkjet printers over SNMP to retrieve status, sensor data, model, firmware, and serial information asynchronously.
Yes, if you own a Brother printer and need to query its status programmatically. The package is actively maintained, has no known vulnerabilities, installs cleanly, and provides a straightforward async interface. The Apache-2.0 license is permissive. The main constraint is the Python 3.13 or later requirement and the need for SNMP network access to your printer.
Install
brother on PyPI
pip
pip install brotheruv
uv add brotherpoetry
poetry add brotherInstalling brother
Before you install
Low friction installation with a pure-Python wheel. Actively maintained with a recent release; last commit 2026-08-08 and marked production/stable.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
import asyncio
from brother import Brother
async def main():
brother = await Brother.create('host', printer_type='laser')
data = await brother.async_update()
print(f"Status: {data.status}")
brother.shutdown()
asyncio.run(main())
Requires Python 3.13 or later; printer must be reachable via SNMP on the network.
Verify before relying
- Which specific Brother printer models are supported beyond 'laser' and 'inkjet' types.
- Whether SNMP v1, v2c, v3, or all versions are supported.
- Timeout and retry behavior when a printer is unreachable.
- Full range of sensor data and status fields available from async_update().
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — dacite, pyasn1, pysnmp |
| Maintenance | actively maintained — 55 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 83,223/month — #14,092 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: brother-6.1.1-py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
pyippAsynchronous Python client for querying and…
permissive · top 15,000 on PyPI
python-escposPython library to send text, images, barcodes,…
permissive · top 15,000 on PyPI
nettigo-air-monitorFetches and parses air quality data from…
permissive · top 15,000 on PyPI
goodweConnects to GoodWe solar inverters over local…
permissive · top 15,000 on PyPI
pysnmp-mibsProvides pre-compiled IETF and IANA MIBs as…
permissive · top 15,000 on PyPI
inkbird-bleParses BLE advertisements from INKBIRD…
permissive · top 15,000 on PyPI
millheaterPython library to control Mill heater devices…
permissive · top 15,000 on PyPI
pysnmpcryptoProvides stronger cryptographic algorithms for…
permissive · top 15,000 on PyPI
pyprusalinkAsync Python client for the PrusaLink HTTP API,…
permissive · top 15,000 on PyPI