krasselt / m2m-data-usage
Extract SIM card data usage from the m2m-mobil.de management portal
v1.0.0
2026-04-16 08:30 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.5
README
PHP library to extract SIM card data usage from the m2m-mobil.de management portal.
Installation
composer require krasselt/m2m-data-usage
Library Usage
use Krasselt\M2mDataUsage\Client; $client = new Client('username', 'password'); $client->login(); // Fetch all SIM cards $simCards = $client->fetchSimCards(); // Fetch monthly usage details for all SIMs $allDetails = $client->fetchAllUsageDetails($simCards, function ($current, $total, $sim) { echo "[$current/$total] {$sim->iccid}\n"; }); // Get available months (newest first) $months = Client::availableMonths($allDetails); // Access data foreach ($simCards as $sim) { echo "{$sim->iccid} | {$sim->rufnummer} | {$sim->status} | {$sim->tagsAsString()}\n"; foreach ($allDetails[$sim->cardId] ?? [] as $usage) { echo " {$usage->month}: {$usage->usedMb} MB / {$usage->includedMb} MB\n"; echo " Completed: " . ($usage->isCompleted() ? 'yes' : 'no') . "\n"; echo " YYYY-MM: {$usage->yearMonth()}\n"; } }
CLI Usage
# Copy and edit config cp m2m_config.ini.example m2m_config.ini # All available months (per-month files for completed months) php bin/m2m-extract --month all # Only completed months php bin/m2m-extract --month completed # Specific month php bin/m2m-extract --month "März 2026" # Custom output directory php bin/m2m-extract --month all --output-dir ./reports # Pass credentials directly php bin/m2m-extract -u username -p password --month all
Config File
Create m2m_config.ini:
[credentials] username = your_username password = your_password
Output
CSV files with semicolon delimiter containing:
| Column | Description |
|---|---|
| month | Month name (e.g. "März 2026") |
| iccid | SIM card ICCID |
| rufnummer | Phone number |
| tarif | Tariff name |
| status | SIM status (Aktiv/Deaktiviert) |
| tags | Comma-separated tags |
| used_mb | Data used in MB |
| included_mb | Data included in plan in MB |
Requirements
- PHP 8.1+
- guzzlehttp/guzzle ^7.5
License
MIT