herosdevices.hardware.megatec¶
Drivers for Megatec-compatible UPS devices.
Module Contents¶
- herosdevices.hardware.megatec.DEFAULT_OBSERVABLES¶
- herosdevices.hardware.megatec.SERIAL_UPS_STATUS_FORMAT = ['voltage_input', 'voltage_input_fail', 'voltage_output', 'load_percentage', 'input_frequency',...¶
- herosdevices.hardware.megatec.split_status_reply(status_str: str) dict[str, float | int][source]¶
Parse Megatec status reply string into components.
Format: (MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0<cr>)
- Returns:
Flat list of values in order SERIAL_UPS_STATUS_FORMAT
- class herosdevices.hardware.megatec.SerialUPS(address: str, timeout: float = 1.0, observables: dict | None = None)[source]¶
Bases:
herosdevices.core.templates.SerialDeviceTemplateRepresentation of Megatec based uninterruptible power supplies.
- Several UPS vendors use the Megatec based controller card. Among them are:
AdPoS
Green Cell
Important
The devices are quite picky concerning the serial to USB chip. It is known to work with a
Prolific PL2303chip. Others might work but it is not guaranteed.Important
Some devices seem to have an incorrectly grounded serial interface, generating massive noise on the output line. Check for noise on the output power sockets before installing permanently!
A documentation of the full protocol can be found here.
- voltage_input: float¶
- voltage_input_fail: float¶
- voltage_output: float¶
- load_percentage: int¶
- input_frequency: float¶
- battery_voltage: float¶
- temperature: float¶
- utility_fail: int¶
- battery_low: int¶
- bypass_active: int¶
- ups_failed: int¶
- ups_standby: int¶
- test_in_progress: int¶
- shutdown_active: int¶
- beeper_on: int¶
- observables: dict¶
- run_test(test_length: str | int = 'short') None[source]¶
Run a self test.
- Parameters:
test_length – Length of the test to run. Can be given in minutes (integer, 1-99) or as one of
"short"or"low"."short"runs a 10 second test, ``”low”` runs a test until the battery is low.
- address¶
- connection¶