An unofficial Python library to interface with your USMS account and smart meters.
Project description
USMS
An unofficial Python library to interface with your USMS account and smart meters.
Getting Started
Prerequisites
- Python >= 3.8
- pip
Dependencies
- httpx
- lxml
Installation
pip install usms
Quickstart
python -m usms --help
usage: __main__.py [-h] [-l LOG] -u USERNAME -p PASSWORD [-m METER] [--unit] [--consumption] [--credit]
options:
-h, --help show this help message and exit
-l LOG, --log LOG
-u USERNAME, --username USERNAME
-p PASSWORD, --password PASSWORD
-m METER, --meter METER
--unit
--consumption
--credit
[!NOTE] The
username
parameter is the login ID that you use to log-in on the USMS website/app, i.e. your IC Number.
As an example, you can use the following command to get the current remaining unit:
python -m usms -u <ic_number> -p <password> -m <meter> --unit
Usage
from usms import USMSAccount
from datetime import datetime
username = "01001234" # your ic number
password = "hunter1"
# initialize the account
account = USMSAccount(username, password)
# print out the account information
print(account.reg_no)
print(account.name)
print(account.contact_no)
print(account.email)
# print out info on all meters under the account
for meter in account.meters:
print(meter.no)
print(meter.type)
print(meter.address)
print(meter.remaining_unit)
print(meter.remaining_credit)
# to get info from a specific meter
meter = account.get_meter(12345678) # example meter number
# getting hourly breakdown of today's consumptions
date = datetime.now()
hourly_consumptions = meter.get_hourly_consumptions(date)
print(hourly_consumptions)
# getting daily breakdown of this month's comsumptions
daily_consumptions = meter.get_daily_consumptions(date)
print(daily_consumptions)
# get yesterday's total consumption
date = date.replace(day=date.day-1)
print(meter.get_total_day_consumption(date))
# get last month's total cost based un total consumption
date = date.replace(month=date.month-1)
print(meter.get_total_month_cost(date))
To-Do
- Publish package to PyPI
- Improve README
- Support for water meter
- Support for commercial/corporate accounts
License
Distributed under the MIT License. See LICENSE
for more information.
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
usms-0.2.2.tar.gz
(9.8 kB
view details)
Built Distribution
usms-0.2.2-py3-none-any.whl
(9.0 kB
view details)
File details
Details for the file usms-0.2.2.tar.gz
.
File metadata
- Download URL: usms-0.2.2.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cc4357af76afac9948dc32152075a4c02258bde0070df1e4c74efb57400dd16 |
|
MD5 | 34fc79fb7115f4bd750ac305dd2f1a63 |
|
BLAKE2b-256 | da6a0728f193aba8532619d00f35da5e1fd5ec07269710f67404abdb746c5cf9 |
File details
Details for the file usms-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: usms-0.2.2-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 186ca820bd76e1d7e5740b27a0739339c91cceadec3a54aca1187d08156c3df0 |
|
MD5 | 0ea40507e85559f603c70041ddb676e7 |
|
BLAKE2b-256 | 5e3e359b9144a53ed10405c21bc21938fd560eb4e3657fb91239f0ac61daeec6 |