Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🔌 BPDB Smart Meter CLI

PyPI versionPython VersionsLicense: MITDownloads

A Python CLI tool to collect information about Bangladesh Power Development Board (BPDB) prepaid electricity accounts. Get real-time consumer details, recharge history, and manage your smart meter directly from your terminal.

✨ Features

  • 📱 OTP Authentication: Secure login with phone number verification
  • 👤 Consumer Info: Retrieve detailed customer and meter information
  • 🔄 Recharge History: Track your payment and token generation records
  • Smart Meter Integration: Direct API integration with BPDB's official endpoints
  • 🚀 Fast & Lightweight: Built with Python and designed for speed
  • 🔒 Secure: Phone number-based authentication with OTP

📦 Installation

From PyPI (Recommended)

pip install bpdb

From Source

git clone https://github.com/mdminhazulhaque/python-bpdb.git
cd python-bpdb
pip install -e .

🚀 Quick Start

After installation, use the bpdb-cli command:

# Get help
bpdb-cli --help
# Send OTP to your phone
bpdb-cli send-otp 01710123456
# Login with OTP
bpdb-cli login 01710123456 123456
# Get consumer information
bpdb-cli consumer-info

📖 Usage

Usage: bpdb-cli [OPTIONS] COMMAND [ARGS]...
A CLI tool for BPDB Smart Meter management.
Options:
--help Show this message and exit.
Commands:
send-otp Send OTP to phone number for authentication
login Login with phone number and OTP
consumer-info Get detailed consumer and meter information
recharge-info Get recharge and token generation history

💡 Examples

📱 Send OTP

Send an OTP to your registered phone number:

$ bpdb-cli send-otp 01710123456

Sample Output:

OTP sent to 01710123456

🔐 Login

Login using your phone number and the OTP received:

$ bpdb-cli login 01710123456 123456

Sample Output:

Logged in with phone number 01710123456

👤 Get Consumer Information

Retrieve comprehensive customer and meter details:

$ bpdb-cli consumer-info

Sample Output:

+------------------+--------------------+
| Division | Mymensingh |
| Meter Type | 1P |
| Account Type | Active (Prepaid) |
| S&D Division | S&D Kishoreganj |
| Sanction Load | 4 |
| Customer Name | MD. ABDUL HANNAN |
| Customer Address | BOTTIRISH |
| Tariff Category | Tariff : LT-A |
+------------------+--------------------+

🔄 Get Recharge History

View your recent payment and token generation records:

$ bpdb-cli recharge-info 01710123456 0120100112233

Sample Output:

+---------------------+--------------+-------------+--------------------------+
| Date | Gross Amount | Energy Cost | Tokens |
+---------------------+--------------+-------------+--------------------------+
| 2024-05-01 16:15:04 | 5000 | 4662.19 | 1111-2222-3333-4444-5555 |
| 2024-10-01 17:47:27 | 5000 | 4281.47 | 1111-2222-3333-4444-5555 |
| 2025-01-01 23:41:46 | 5000 | 4785.47 | 1111-2222-3333-4444-5555 |
+---------------------+--------------+-------------+--------------------------+

🛠️ Development

Prerequisites

  • Python 3.6 or higher
  • pip package manager

Setting up for Development

  1. Clone the repository:
git clone https://github.com/mdminhazulhaque/python-bpdb.git
cd python-bpdb
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
  1. Install in development mode:
pip install -e .

Dependencies

  • requests - HTTP library for API calls
  • click - Command line interface framework
  • tabulate - Pretty-print tabular data

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

This is an unofficial tool. Use at your own discretion. The authors are not responsible for any issues that may arise from using this tool.

About

⚡ Python module for BPDB Smart Meters

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages