Are you tired of different printers and different integrations? I was, this is a one-to-rule-them-all integration for getting status about your printers. This integration supports automatic discovery and manual configuration of printers, providing detailed status information, supply levels, and automation capabilities.
- ๐ Automatic Discovery: Automatically discovers SNMP-enabled printers via Zeroconf/mDNS
- ๐จ๏ธ Wide Printer Support: Compatible with Brother, Canon, HP, Konica Minolta, Kyocera, Lexmark, OKI, Panasonic, Ricoh, Samsung, Sharp, and Xerox printers
- ๐ Monitoring: Track printer status, toner levels, paper trays, drums, and more
- ๐ง SNMP Version Configuration: Support for SNMP v1, v2c, and v3
- ๐พ Cached Values: Remembers last known sensor values when printer is offline, so you can check toner levels without turning on the printer
- ๐ค Automation Ready: Trigger automations based on printer events
For each configured printer, the integration creates:
- Status Sensor: Current printer status (ready, jammed, etc.) with uptime, memory, page count, and other attributes
- Cover Status Sensor: Current cover/door status
- Total Pages Sensor: Total pages printed (with color and B&W breakdown)
- Toner/Ink Sensors: Individual sensors for each toner cartridge showing remaining level
- Paper Tray Sensors: Status and capacity for each paper tray
- Waste Container Sensor: Waste toner box fill level
- Drum Unit Sensors: Remaining life for drum units
- Other Consumables: Belt units, finishers, etc.
- Open HACS in Home Assistant
- Go to "Integrations"
- Click the "+" button
- Search for "SNMP Printer"
- Install the integration
- Restart Home Assistant
- Download the latest release from GitHub
- Extract the
custom_components/snmp_printerfolder to your Home Assistant'scustom_componentsdirectory - Restart Home Assistant
- Go to Settings โ Devices & Services
- Click Add Integration
- Search for "SNMP Printer"
- Follow the configuration steps:
- Automatic Discovery: If Home Assistant discovered a printer, you'll see a notification - click Configure to set it up
- Manual Configuration: Enter printer details manually if not discovered
- IP Address: Printer's IP address
- Port: SNMP port (default: 161)
- SNMP Version: v1, v2c, or v3
- Community String: SNMP community name (default: public)
- Update Interval: How often to poll the printer (default: 60 seconds)
For SNMP v3, additional security parameters are required:
- Username: SNMP v3 username
- Auth Protocol: Authentication protocol (MD5 or SHA)
- Auth Key: Authentication password
- Privacy Protocol: Privacy protocol (DES or AES)
- Privacy Key: Privacy password
Once configured, the integration will create a device for your printer with all available sensors. View the device page to see:
- Manufacturer and model information
- Serial number
- Hardware (MAC) address
- Link to printer's web interface (if available)
- All sensor readings
Create automations based on printer events:
automation:
- alias: "Low Toner Alert"
trigger:
- platform: numeric_state
entity_id: sensor.office_printer_black_toner
below: 20
action:
- service: notify.mobile_app
data:
message: "Office printer black toner is low!"
- alias: "Paper Jam Notification"
trigger:
- platform: state
entity_id: sensor.office_printer_status
to: "jammed"
action:
- service: notify.mobile_app
data:
message: "Office printer has a paper jam!"If your printer is not discovered automatically:
- Ensure the printer is powered on and connected to the network
- Verify SNMP is enabled on the printer
- Check that your printer advertises itself via mDNS/Zeroconf (most network printers do)
- Try manual configuration instead with the printer's IP address
- Verify the SNMP community string is correct
- Ensure SNMP version matches printer configuration
- Check printer supports standard Printer MIB (RFC 3805)
- Some printers may not support all sensors
- Verify username and passwords are correct
- Ensure auth and privacy protocols match printer configuration
- Some older printers may not fully support SNMP v3
I have tried to use machine translation to create a few useable translations. Please correct me if there are any major wrongs or you are missing some languages:
- ๐ฌ๐ง English (en.json) - English
- ๐ธ๐ช Swedish (sv.json) - Svenska
- ๐ฉ๐ฐ Danish (da.json) - Dansk
- ๐ณ๐ด Norwegian (no.json) - Norsk
- ๐ซ๐ฎ Finnish (fi.json) - Suomi
- ๐ฉ๐ช German (de.json) - Deutsch
- ๐ณ๐ฑ Dutch (nl.json) - Nederlands
- ๐ช๐ธ Spanish (es.json) - Espaรฑol
- ๐ซ๐ท French (fr.json) - Franรงais
This integration uses standard Printer MIB (RFC 3805) and should work with most network printers from:
- Brother
- Canon
- HP
- Konica Minolta
- Kyocera
- Lexmark
- OKI
- Panasonic
- Ricoh
- Samsung
- Sharp
- Xerox
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- ๐ Report a Bug
- ๐ก Request a Feature
- ๐ Documentation
See CHANGELOG.md for version history.