Refinements

This commit is contained in:
Ircama 2023-11-11 10:37:03 +01:00
parent 1889241ce1
commit f725e70f5f
2 changed files with 52 additions and 51 deletions

View file

@ -39,9 +39,9 @@ It is tested with Ubuntu / Windows Subsystem for Linux, Windows.
``` ```
usage: epson_print_conf.py [-h] -m MODEL -a HOSTNAME [-p PORT] [-i] [-q QUERY_NAME] [--reset_waste_ink] [-d] usage: epson_print_conf.py [-h] -m MODEL -a HOSTNAME [-p PORT] [-i] [-q QUERY_NAME] [--reset_waste_ink] [-d]
[--write-first-ti-received-time YEAR MONTH DAY] [--write-poweroff-timer MINUTES] [--write-first-ti-received-time YEAR MONTH DAY] [--write-poweroff-timer MINUTES]
[--dry-run] [-R ADDRESS_SET] [-W ADDRESS_VALUE_SET] [-e FIRST_ADDRESS LAST_ADDRESS] [--dry-run] [-R ADDRESS_SET] [-W ADDRESS_VALUE_SET]
[--detect-key] [-S SEQUENCE_STRING] [-t TIMEOUT] [-r RETRIES] [-c CONFIG_FILE] [-e FIRST_ADDRESS LAST_ADDRESS] [--detect-key] [-S SEQUENCE_STRING] [-t TIMEOUT]
[--simdata SIMDATA_FILE] [-r RETRIES] [-c CONFIG_FILE] [--simdata SIMDATA_FILE]
optional arguments: optional arguments:
-h, --help show this help message and exit -h, --help show this help message and exit
@ -358,7 +358,7 @@ Example of advanced printer status with an XP-205 printer:
'Total print page counter': 11569, 'Total print page counter': 11569,
'Total print pass counter': 514602, 'Total print pass counter': 514602,
'Total scan counter': 4973, 'Total scan counter': 4973,
'poweroff_timer': 30}, 'Power off timer': 30},
'waste_ink_levels': {'borderless_waste': 4.72, 'main_waste': 90.8}} 'waste_ink_levels': {'borderless_waste': 4.72, 'main_waste': 90.8}}
``` ```

View file

@ -136,7 +136,7 @@ class EpsonPrinter:
"First TI received time": [173, 172], "First TI received time": [173, 172],
"Maintenance required level of 1st waste ink counter": [46], "Maintenance required level of 1st waste ink counter": [46],
"Maintenance required level of 2nd waste ink counter": [47], "Maintenance required level of 2nd waste ink counter": [47],
"poweroff_timer": [359, 358], "Power off timer": [359, 358],
}, },
"raw_waste_reset": { "raw_waste_reset": {
24: 0, 25: 0, 30: 0, # Data of 1st counter 24: 0, 25: 0, 30: 0, # Data of 1st counter
@ -324,43 +324,44 @@ class EpsonPrinter:
10332: 'Black', 10360: 'Cyan', 10361: 'Magenta', 10362: 'Yellow', # 603XL 10332: 'Black', 10360: 'Cyan', 10361: 'Magenta', 10362: 'Yellow', # 603XL
} }
SNMP_INFO = { MIB_MGMT = "1.3.6.1.2"
"Model": "1.3.6.1.2.1.25.3.2.1.3.1", PRINT_MIB = MIB_MGMT + ".1.43"
"Epson Model": "1.3.6.1.4.1.1248.1.2.2.1.1.1.2.1", MIB_OID_ENTERPRISE = "1.3.6.1.4.1"
"Model short": "1.3.6.1.4.1.1248.1.1.3.1.3.8.0", MIB_EPSON = MIB_OID_ENTERPRISE + ".1248"
"EEPS2 firmware version": "1.3.6.1.2.1.2.2.1.2.1",
"Descr": "1.3.6.1.2.1.1.1.0",
"UpTime": "1.3.6.1.2.1.1.3.0",
"Name": "1.3.6.1.2.1.1.5.0",
"MAC Address": "1.3.6.1.2.1.2.2.1.6.1",
"Print input": "1.3.6.1.2.1.43.8.2.1.13.1.1",
"Lang 1": "1.3.6.1.2.1.43.15.1.1.3.1.1",
"Lang 2": "1.3.6.1.2.1.43.15.1.1.3.1.2",
"Lang 3": "1.3.6.1.2.1.43.15.1.1.3.1.3",
"Lang 4": "1.3.6.1.2.1.43.15.1.1.3.1.4",
"Lang 5": "1.3.6.1.2.1.43.15.1.1.3.1.5",
"Emulation 1": "1.3.6.1.2.1.43.15.1.1.5.1.1",
"Emulation 2": "1.3.6.1.2.1.43.15.1.1.5.1.2",
"Emulation 3": "1.3.6.1.2.1.43.15.1.1.5.1.3",
"Emulation 4": "1.3.6.1.2.1.43.15.1.1.5.1.4",
"Emulation 5": "1.3.6.1.2.1.43.15.1.1.5.1.5",
"Total printed pages": "1.3.6.1.2.1.43.10.2.1.4.1.1",
#"Total copies": "1.3.6.1.2.1.43.11.1.1.9.1.1",
#"Serial number": "1.3.6.1.2.1.43.5.1.1.17.1",
"IP Address": "1.3.6.1.4.1.1248.1.1.3.1.4.19.1.3.1",
"IPP_URL_path": "1.3.6.1.4.1.1248.1.1.3.1.4.19.1.4.1",
"IPP_URL": "1.3.6.1.4.1.1248.1.1.3.1.4.46.1.2.1",
"WiFi": "1.3.6.1.4.1.1248.1.1.3.1.29.2.1.9.0",
"MAC Addr": "1.3.6.1.4.1.1248.1.1.3.1.1.5.0",
"device_id": "1.3.6.1.4.1.11.2.3.9.1.1.7.0",
"Power Off Timer": "1.3.6.1.4.1.1248.1.2.2.44.1.1.2.1.111.116.2.0.1.1"
}
SNMP_OID_ENTERPRISE = "1.3.6.1.4.1"
SNMP_EPSON = "1248"
OID_PRV_CTRL = "1.2.2.44.1.1.2" OID_PRV_CTRL = "1.2.2.44.1.1.2"
EEPROM_LINK = f'{MIB_EPSON}.{OID_PRV_CTRL}.1'
eeprom_link: str = f'{SNMP_OID_ENTERPRISE}.{SNMP_EPSON}.{OID_PRV_CTRL}.1' MIB_INFO = {
"Model": f"{MIB_MGMT}.1.25.3.2.1.3.1",
"Epson Model": f"{MIB_EPSON}.1.2.2.1.1.1.2.1",
"Model short": f"{MIB_EPSON}.1.1.3.1.3.8.0",
"EEPS2 firmware version": f"{MIB_MGMT}.1.2.2.1.2.1",
"Descr": f"{MIB_MGMT}.1.1.1.0",
"UpTime": f"{MIB_MGMT}.1.1.3.0",
"Name": f"{MIB_MGMT}.1.1.5.0",
"MAC Address": f"{MIB_MGMT}.1.2.2.1.6.1",
"Print input": f"{PRINT_MIB}.8.2.1.13.1.1",
"Lang 1": f"{PRINT_MIB}.15.1.1.3.1.1",
"Lang 2": f"{PRINT_MIB}.15.1.1.3.1.2",
"Lang 3": f"{PRINT_MIB}.15.1.1.3.1.3",
"Lang 4": f"{PRINT_MIB}.15.1.1.3.1.4",
"Lang 5": f"{PRINT_MIB}.15.1.1.3.1.5",
"Emulation 1": f"{PRINT_MIB}.15.1.1.5.1.1",
"Emulation 2": f"{PRINT_MIB}.15.1.1.5.1.2",
"Emulation 3": f"{PRINT_MIB}.15.1.1.5.1.3",
"Emulation 4": f"{PRINT_MIB}.15.1.1.5.1.4",
"Emulation 5": f"{PRINT_MIB}.15.1.1.5.1.5",
"Total printed pages": f"{PRINT_MIB}.10.2.1.4.1.1",
#"Total copies": f"{PRINT_MIB}.11.1.1.9.1.1",
#"Serial number": f"{PRINT_MIB}.5.1.1.17.1",
"IP Address": f"{MIB_EPSON}.1.1.3.1.4.19.1.3.1",
"IPP_URL_path": f"{MIB_EPSON}.1.1.3.1.4.19.1.4.1",
"IPP_URL": f"{MIB_EPSON}.1.1.3.1.4.46.1.2.1",
"WiFi": f"{MIB_EPSON}.1.1.3.1.29.2.1.9.0",
"MAC Addr": f"{MIB_EPSON}.1.1.3.1.1.5.0",
"device_id": f"{MIB_OID_ENTERPRISE}.11.2.3.9.1.1.7.0",
"Power Off Timer": f"{EEPROM_LINK}.111.116.2.0.1.1"
}
session: object session: object
model: str model: str
@ -490,7 +491,7 @@ class EpsonPrinter:
if 'read_key' not in self.parm: if 'read_key' not in self.parm:
return None return None
return ( return (
f"{self.eeprom_link}" f"{self.EEPROM_LINK}"
".124.124" # || (7C 7C) ".124.124" # || (7C 7C)
".7.0" # read (07 00) ".7.0" # read (07 00)
f".{self.parm['read_key'][0]}" f".{self.parm['read_key'][0]}"
@ -524,7 +525,7 @@ class EpsonPrinter:
or 'read_key' not in self.parm): or 'read_key' not in self.parm):
return None return None
write_op = ( write_op = (
f"{self.eeprom_link}" f"{self.EEPROM_LINK}"
".124.124" # || 7C 7C ".124.124" # || 7C 7C
".16.0" # write (10 00) ".16.0" # write (10 00)
f".{self.parm['read_key'][0]}" f".{self.parm['read_key'][0]}"
@ -1045,10 +1046,10 @@ class EpsonPrinter:
def get_snmp_info(self, mib_name: str = None) -> str: def get_snmp_info(self, mib_name: str = None) -> str:
"""Return general SNMP information of printer.""" """Return general SNMP information of printer."""
sys_info = {} sys_info = {}
if mib_name and mib_name in self.SNMP_INFO.keys(): if mib_name and mib_name in self.MIB_INFO.keys():
snmp_info = {mib_name: self.SNMP_INFO[mib_name]} snmp_info = {mib_name: self.MIB_INFO[mib_name]}
else: else:
snmp_info = self.SNMP_INFO snmp_info = self.MIB_INFO
for name, oid in snmp_info.items(): for name, oid in snmp_info.items():
logging.debug( logging.debug(
f"SNMP_DUMP {name}:\n" f"SNMP_DUMP {name}:\n"
@ -1152,7 +1153,7 @@ class EpsonPrinter:
def get_firmware_version(self) -> str: def get_firmware_version(self) -> str:
"""Return firmware version.""" """Return firmware version."""
oid = f"{self.eeprom_link}.118.105.1.0.0" # 76 69 01 00 00 oid = f"{self.EEPROM_LINK}.118.105.1.0.0" # 76 69 01 00 00
label = "get_firmware_version" label = "get_firmware_version"
logging.debug( logging.debug(
f"SNMP_DUMP {label}:\n" f"SNMP_DUMP {label}:\n"
@ -1177,7 +1178,7 @@ class EpsonPrinter:
def get_cartridges(self) -> str: def get_cartridges(self) -> str:
"""Return list of cartridge types.""" """Return list of cartridge types."""
oid = f"{self.eeprom_link}.105.97.1.0.0" # 69 61 01 00 00 oid = f"{self.EEPROM_LINK}.105.97.1.0.0" # 69 61 01 00 00
label = "get_cartridges" label = "get_cartridges"
logging.debug( logging.debug(
f"SNMP_DUMP {label}:\n" f"SNMP_DUMP {label}:\n"
@ -1224,7 +1225,7 @@ class EpsonPrinter:
def get_printer_status(self): def get_printer_status(self):
"""Return printer status and ink levels.""" """Return printer status and ink levels."""
address = f"{self.eeprom_link}.115.116.1.0.1" # 73 74 01 00 01 address = f"{self.EEPROM_LINK}.115.116.1.0.1" # 73 74 01 00 01
logging.debug(f"PRINTER_STATUS:\n ADDRESS: {address}") logging.debug(f"PRINTER_STATUS:\n ADDRESS: {address}")
tag, result = self.snmp_mib(address, label="get_printer_status") tag, result = self.snmp_mib(address, label="get_printer_status")
if not result: if not result:
@ -1292,7 +1293,7 @@ class EpsonPrinter:
"""Return list of cartridge properties.""" """Return list of cartridge properties."""
response = [] response = []
for i in range(1, 9): for i in range(1, 9):
mib = f"{self.eeprom_link}.105.105.2.0.1." + str(i) # 69 69 02 00 01 mib = f"{self.EEPROM_LINK}.105.105.2.0.1." + str(i) # 69 69 02 00 01
logging.debug( logging.debug(
f"Cartridge {i}:\n" f"Cartridge {i}:\n"
f" ADDRESS: {mib}" f" ADDRESS: {mib}"
@ -1965,7 +1966,7 @@ if __name__ == "__main__":
pprint(ret) pprint(ret)
else: else:
print("No information returned. Check printer definition.") print("No information returned. Check printer definition.")
elif args.query[0] in printer.SNMP_INFO.keys(): elif args.query[0] in printer.MIB_INFO.keys():
ret = printer.get_snmp_info(args.query[0]) ret = printer.get_snmp_info(args.query[0])
if ret: if ret:
pprint(ret) pprint(ret)
@ -2004,7 +2005,7 @@ if __name__ == "__main__":
) + ) +
textwrap.fill( textwrap.fill(
"Available SNMP elements: " + "Available SNMP elements: " +
", ".join(printer.SNMP_INFO.keys()), ", ".join(printer.MIB_INFO.keys()),
initial_indent='', subsequent_indent=' ' initial_indent='', subsequent_indent=' '
) )
) )