A Home Assistant custom integration for BASE Belgium mobile subscribers.
Track your mobile data usage, remaining credit, billing cycle and out-of-bundle costs directly in your smart home.
If this project helped you, please consider buying me a coffee ☕
| Feature | Description |
|---|---|
| Data usage | Total, used and remaining data in GB |
| Monetary tracking | Used and remaining allowance in EUR |
| Usage percentage | How much of your bundle you've consumed |
| Data today | Daily data usage tracking with automatic midnight reset |
| Days remaining | Countdown to next billing date |
| Out of bundle | Extra costs outside your bundle |
| Prepaid credit | Current credit balance for prepaid SIMs |
| Multi-SIM | Supports multiple phone numbers per account |
| Diagnostics | Download debug data from the integration page |
- Open HACS in your Home Assistant instance
- Click the three dots menu (top right) and select Custom repositories
- Add this repository URL:
https://github.com/aaamoeder/ha-base-belgium - Set the category to Integration and click Add
- Find BASE Belgium in the HACS store and click Install
- Restart Home Assistant
- Download the latest release
- Copy the
custom_components/base_belgiumfolder to yourconfig/custom_components/directory - Restart Home Assistant
- Go to Settings > Devices & Services > Add Integration
- Search for BASE Belgium
- Enter your credentials:
| Name | Type | Required | Description |
|---|---|---|---|
phone |
string | yes | Your BASE Belgium phone number (e.g. 0470123456) or email |
password |
string | yes | Your BASE Belgium / My BASE password |
The integration supports re-authentication — if your session expires, Home Assistant will prompt you to re-enter your credentials.
After setup, go to Settings > Devices & Services > BASE Belgium > Configure to change:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
scan_interval |
number | no | 240 |
How often to fetch data from BASE (minutes, range: 60–1440) |
| Sensor | Description | Unit |
|---|---|---|
| Used | Monetary allowance consumed | EUR |
| Remaining | Monetary allowance left | EUR |
| Usage percentage | Percentage of bundle used | % |
| Data total | Total data equivalent | GB |
| Data used | Data equivalent consumed | GB |
| Data remaining | Data equivalent left | GB |
| Data today | Data used since midnight | GB |
| Days remaining | Days until next billing date | days |
| Out of bundle | Extra costs outside bundle | EUR |
| Sensor | Description | Unit |
|---|---|---|
| Credit | Current prepaid credit balance | EUR |
| Out of bundle | Extra costs outside bundle | EUR |
BASE Belgium does not provide a public API. This integration authenticates via the same Okta Identity Engine flow used by the My BASE website, then fetches usage data from their internal API.
- Polling interval: configurable, default 240 minutes (range: 60–1440 minutes)
- Authentication: lazy login — only authenticates when session cookies expire
- Data preservation: on partial failure, retains previous data to prevent sensor dropouts
- Re-auth flow: triggers HA re-authentication prompt on credential failures
| Language | Status |
|---|---|
| English | Fully translated |
| Nederlands | Fully translated |
| Français | Fully translated |
| Deutsch | Fully translated |
| Issue | Solution |
|---|---|
| Integration not loading | Clear browser cache and restart HA |
| Authentication failed | Check credentials, re-authenticate via Settings > Integrations |
| Sensors showing "unknown" | Wait for the first data fetch (up to 4 hours) or check logs for errors |
| Data values seem wrong | BASE updates usage data with some delay; check again after next poll |
This integration is not affiliated with or endorsed by BASE or Telenet. It relies on undocumented APIs, which means it may break if BASE changes their systems. Use at your own risk.
MIT License — see LICENSE file for details.