Add new MIB OIDs

This commit is contained in:
Ircama 2023-07-24 22:39:42 +02:00
parent 3ce510f1cb
commit 1767ce1ce3

View file

@ -7,6 +7,7 @@ import re
from typing import Any from typing import Any
import datetime import datetime
import easysnmp # pip3 install easysnmp import easysnmp # pip3 install easysnmp
import time
class EpsonPrinter: class EpsonPrinter:
@ -168,11 +169,10 @@ class EpsonPrinter:
def stats(self): def stats(self):
"""Return information about the printer.""" """Return information about the printer."""
methods = [ methods = [
"get_model_full", "get_sys_info",
"get_serial_number", "get_serial_number",
"get_firmware_version", "get_firmware_version",
"get_printer_head_id", "get_printer_head_id",
"get_eeps2_version",
"get_cartridges", "get_cartridges",
"get_printer_status", "get_printer_status",
"get_ink_replacement_counters", "get_ink_replacement_counters",
@ -288,13 +288,35 @@ class EpsonSession(easysnmp.Session):
d[oid] = int(self.read_eeprom(oid), 16) d[oid] = int(self.read_eeprom(oid), 16)
return d return d
def get_model(self) -> str: def get_sys_info(self) -> str:
"""Return model of printer.""" """Return model of printer."""
return self.get_value("1.3.6.1.2.1.1.5.0") info_dict = {
"model": "1.3.6.1.2.1.25.3.2.1.3.1",
def get_model_full(self) -> str: "model_short": "1.3.6.1.4.1.1248.1.1.3.1.3.8.0",
"""Return full model of printer.""" "EEPS2 version": "1.3.6.1.2.1.2.2.1.2.1",
return self.get_value("1.3.6.1.2.1.25.3.2.1.3.1") "descr": "1.3.6.1.2.1.1.1.0",
#"ObjectID": "1.3.6.1.2.1.1.2.0",
"UpTime": "1.3.6.1.2.1.1.3.0",
#"Contact": "1.3.6.1.2.1.1.4.0",
"Name": "1.3.6.1.2.1.1.5.0",
#"Location": "1.3.6.1.2.1.1.6.0",
#"Services": "1.3.6.1.2.1.1.7.0",
#"ORLastChange ": "1.3.6.1.2.1.1.8.0",
#"sORTable ": "1.3.6.1.2.1.1.9.0",
"MAC Address": "1.3.6.1.2.1.2.2.1.6.1",
}
sys_info = {}
for name, mib in info_dict.items():
try:
sys_info[name] = self.get_value(mib)
except Exception:
sys_info[name] = None
if sys_info["UpTime"]:
sys_info["UpTime"] = time.strftime(
'%H:%M:%S', time.gmtime(int(sys_info["UpTime"])/100))
if sys_info["MAC Address"]:
sys_info["MAC Address"] = bytes([ord(i) for i in sys_info["MAC Address"]]).hex("-").upper()
return sys_info
def get_serial_number(self) -> str: def get_serial_number(self) -> str:
"""Return serial number of printer.""" """Return serial number of printer."""
@ -337,10 +359,6 @@ class EpsonSession(easysnmp.Session):
b = self.read_eeprom_many(self.printer.parm["printer_head_id_f"]) b = self.read_eeprom_many(self.printer.parm["printer_head_id_f"])
return(f'{"".join(a)} - {"".join(b)}') return(f'{"".join(a)} - {"".join(b)}')
def get_eeps2_version(self) -> str:
"""Return EEPS2 version."""
return self.get_value("1.3.6.1.2.1.2.2.1.2.1")
def get_firmware_version(self) -> str: def get_firmware_version(self) -> str:
"""Return firmware version.""" """Return firmware version."""
firmware_string = self.get_value( firmware_string = self.get_value(