skillfed

brother

Python wrapper for getting data from Brother laser and inkjet printers via SNMP.

brother v6.1.1 83.2K downloads/30d#14,092 on PyPI27
Permissive license Apache-2.0 Active released

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 brother

uv

uv add brother

poetry

poetry add brother

Installing 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

Development Status :: 5 - Production/StableOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.13Programming Language :: Python :: 3.14Typing :: Typed

Tags

brother printer snmpprinter status monitoringbrother laser inkjet datasnmp printer queryprinter sensor data asyncbrother device info
snmpprinter-monitoringasync

More Monitoring packages