Support RDTech UM24C, UM25C, UM34C.
Open an UM-Meter interface and request data:
from pyummeter import UMmeter, UMmeterInterfaceTTY
with UMmeter(UMmeterInterfaceTTY("/path/to/serial/port")) as meter:
data = meter.get_data()
print(f"{data['voltage']} V / {data['power']} W")It is also possible to export the data to a CSV file:
from datetime import datetime
from pyummeter import UMmeter, UMmeterInterfaceTTY
from pyummeter.export_csv import ExportCSV
csv = ExportCSV("/path/to/csv")
with UMmeter(UMmeterInterfaceTTY("/path/to/serial/port")) as meter:
csv.update(datetime.now(), meter.get_data())List of data available:
model: UM-Meter model name (exported to CSV)voltage: Voltage (V) (exported to CSV)intensity: Intensity (A) (exported to CSV)power: Power (W) (exported to CSV)resistance: Resistance (Ohm) (exported to CSV)usb_voltage_dp: USB Voltage D+ (V) (exported to CSV)usb_voltage_dn: USB Voltage D- (V) (exported to CSV)charging_mode: Charging mode short name (exported to CSV)charging_mode_full: Charging mode full nametemperature_celsius: Temperature (°C) (exported to CSV)temperature_fahrenheit: Temperature (°F)data_group_selected: Selected data group (index)data_group: Data for each data group (list) (exported to CSV, only the selected group)capacity: Capacity (Ah)energy: Energy (Wh)
record_capacity_threshold: [Record mode] Capacity threshold (Ah) (exported to CSV)record_energy_threshold: [Record mode] Energy threshold (Wh) (exported to CSV)record_intensity_threshold: [Record mode] Intensity threshold (A) (exported to CSV)record_duration: [Record mode] Duration (seconds) (exported to CSV)record_enabled: [Record mode] Enable status (exported to CSV)screen_index: Screen indexscreen_timeout: Screen timeoutscreen_brightness: Screen brightnesschecksum: Checksum of all data
Meter control managed (not available on all model):
- Screen control:
- Change (next/previous)
- Rotate
- Set timeout (0 to 9 minutes)
- Set brightness (0 to 5)
- Data group control:
- Select (0 to 9, next)
- Clear
- Record threshold (0 to 300 mA)
$ sudo killall rfcomm
$ rfkill block bluetooth
$ rfkill unblock bluetooth
$ sudo bluetoothctl
[bluetooth] power on
[bluetooth] agent on
[bluetooth] scan on
[bluetooth] pair <MAC>
$ sudo rfcomm connect /dev/rfcomm0 <MAC>poetry install
poetry run task demo -t /dev/rfcomm0