Releases: claesmathias/telenet_telemeter
v3.2.3 — OOB documentation
v3.2.2 — Out-of-bundle usage attributes
What's new in 3.2.2
Out-of-bundle (OOB) usage on mobile sensor
Two new attributes are added to every mobile sensor entity:
| Attribute | Description | Example |
|---|---|---|
outofbundle_eur |
Total out-of-bundle spend this period | "0" |
outofbundle_details |
Breakdown by category (€) | see below |
outofbundle_details contains all OOB categories:
OOB_NATIONAL_VOICE— calls to Belgian numbers outside bundleOOB_INTERNATIONAL_VOICE— international callsOOB_ROAMING_VOICE— roaming voiceOOB_NATIONAL_SMS/OOB_INTERNATIONAL_SMS/OOB_ROAMING_SMSOOB_MMSOOB_NATIONAL_DATA/OOB_ROAMING_DATAOOB_PAY_BY_MOBILE_AND_PREMIUM
Note: The new
customer-web-billingAPI does not expose OOB data. This uses a supplementary call to the v3 mobile API. If that call is rate-limited by Cloudflare, the OOB attributes silently retain their last known value.
v3.2.1 — Documentation update
What's new in 3.2.1
Documentation
- Updated README with correct entity names (no more "Telemeter" in names)
- Internet sensor: document
peak_usage_gb,offpeak_usage_gb,total_downloaded_gb,last_update_formatted,period_next_start - Mobile sensor: full attribute table including voice minutes,
has_voice,data_unlimited, sub-sensors - All 5 auto-created mobile sub-sensors per SIM documented (days left, max data, usage %, voice used, last update)
- Example cards updated to use new entity IDs and attribute names
- New ApexChart example plotting peak + off-peak as stacked columns with total downloaded line
No code changes — this is a documentation-only release.
For the full feature list see v3.2.0.
v3.2.0 — New mobile API, dynamic sub-sensors, clean data
Breaking change notice
Mobile sensor entity IDs are unchanged — the plan labels (Unlimited, Data SIM Unlimited) are preserved. The underlying API has been completely replaced; no configuration changes needed.
What's new
New mobile API (customer-web-billing)
The integration now uses the same API as the Telenet web app:
| Old endpoint | New endpoint |
|---|---|
/mobile-service/v3/mobilesubscriptions/{id}/usages |
/customer-web-billing-mobile-usage/v1/mobile-lines/{msisdn}/usage |
/product-service/v1/product-subscriptions?producttypes=MOBILE |
/customer-web-billing-mobile-line-selector/v1/mobile-lines |
Benefits:
- No more Cloudflare 429 / bot-detection errors that caused sensors to go Unknown
- Consumed / remaining / total / percentage returned directly — no complex bundle/shared/included parsing
isDataOnlyflag comes from the API (no more guessing from voice data presence)- Voice minutes and SMS count in a clean
tiles[]array - ~100 lines of fragile parsing code removed
Mobile sensor attributes (per subscription)
| Attribute | Example |
|---|---|
usage_gb |
64.13 GB |
used_percentage_data |
21.4 % |
max_data_gb |
300 GB |
data_unlimited |
true (FUP plan) |
period_days_left |
10.1 |
voice_used_minutes |
50.8 min |
voice_unlimited |
true |
has_voice |
false for data-only SIMs |
last_update_formatted |
22:06 on 1 Jun |
Dynamic sub-sensor entities (per SIM, auto-created)
Five separate HA entities are created automatically for every mobile subscription — no configuration.yaml needed:
… days left(days until billing period resets)… max data(GB cap, e.g. 300)… usage %… voice used(minutes;Nonefor data-only SIMs)… last update
Bug fixes
callTelenetno longer crashes withUnboundLocalErrorwhen a network error occurs before any response is receivedresponse is not Noneguard added to all retry-enabled API methods
Tests
New tests/test_usage_report.py — live integration test that logs in and prints a full usage report table for all products. All 6 tests pass against the live API.
v3.1.2
What's new in 3.1.2
Dynamic sub-sensors per mobile subscription
For each mobile subscription the integration now creates 5 additional HA sensor entities automatically — no configuration.yaml needed, works for any number of SIM cards:
| Entity suffix | Example value | Unit |
|---|---|---|
… days left |
15 | days |
… max data |
300 | GB |
… usage % |
2 | % |
… voice used |
34 (null for data-only SIM) | min |
… last update |
07:57 on 27 May | — |
Bug fixes
- Fix
UnboundLocalErrorincallTelenetwhen an HTTP request throws before a response object is created
v3.1.1
What's new in 3.1.1
Mobile sensor enrichment
period_days_left— days until the next billing period startsmax_data_gb— maximum data allowance for the period (e.g. 300 GB)data_unlimited— whether the plan is unlimited (fair-use)voice_used_minutes— minutes used this period (e.g. 34.58)voice_max_minutes— maximum voice minutes (null = unlimited)voice_unlimited— whether voice is unlimitedhas_voice— false for data-only SIMslast_update_formatted— human-readable last update, e.g. "07:57 on 27 May"used_percentage_datanow correctly reads fromincluded.data[0](fixes 0% on unlimited plans)
Internet sensor
- Entity names no longer contain "Telemeter" (e.g.
Telenet internet Turbo <id>) - Added
last_update_formattedandperiod_next_startattributes
Announcements sensor
- Surfaces inbox unread count and message list
v3.1.0
v3.1.0
New: Announcements sensor
A new telenet_telemeter announcements sensor surfaces Telenet inbox messages with unread_count as state and a messages list attribute.
Internet sensor — GB instead of %, correct FUP accounting
- State now shows GB (
usage_gb) instead of percentage - FUP/TURBO plans: state uses the API's authoritative FUP counter (
productUsage.totalUsage.units) — only peak traffic counts towards the 3 TB soft cap; off-peak counts 0% - New attributes:
peak_usage_gb,offpeak_usage_gb,total_downloaded_gb used_percentagestill available as attribute
Mobile sensor — GB instead of %
- State now shows used data in GB (e.g.
40.61) instead of0%for unlimited plans _usage_gbadded as explicit attribute- Unit changed from
%toGB
Robustness
mobileUsage/mobileBundleUsage: retry on transient 429, fast-fail on Cloudflare HTML block instead of crashing- Mobile sensor no longer raises
AssertionErrorwhen usage endpoint is temporarily unavailable — keeps previous state with a warning log
Tests
- Live integration tests added under
tests/test_live_api.py
v3.0.1b4 (beta)
Beta release 3.0.1b4
Internet sensor — peak / off-peak breakdown + corrected FUP state
Verified from live API: off-peak usage counts 0% towards the FUP limit, not 50%. Only peak traffic counts against the 3072 GB soft cap. The API's own productUsage.totalUsage.units (= peak-only) is the authoritative FUP counter.
State (usage_gb) now uses that authoritative FUP counter — the number Telenet actually tracks for throttling.
New attributes on the internet sensor:
| Attribute | Value |
|---|---|
peak_usage_gb |
Peak-hour traffic in GB (counts 100% towards FUP) |
offpeak_usage_gb |
Off-peak traffic in GB (counts 0% towards FUP) |
total_downloaded_gb |
peak + offPeak — raw bytes downloaded this period |
usage_gb (state) |
FUP-effective usage = peak only ≈ peak_usage_gb |
v3.0.1b3 (beta)
Beta release 3.0.1b3
Breaking change: sensors now report GB instead of %
Internet sensor (telenet_telemeter internet <id>)
- State is now usage in GB (e.g.
835.09) - Unit changed from
%→GB - TURBO plans: fixed — usage_gb now = peak + offPeak (previously only peak was counted, causing ~6% to appear instead of ~27%)
used_percentageis still available as an attribute
Mobile sensors (telenet_telemeter mobile <id>)
- State is now used data in GB (e.g.
40.61) - Unit changed from
%→GB - Fixes unlimited plans always showing
0%(meaningless for unlimited) used_percentage_datastill available as an attributeusage_gbadded as an explicit attribute
If you have automations or templates that rely on the old
%state value, update them to use theused_percentage/used_percentage_dataattribute instead.
v3.0.1b2 (beta)
Beta release 3.0.1b2
Fix
- Mobile sensor no longer crashes when the Telenet API returns a Cloudflare block (429 with HTML body) on the mobile usage endpoint. The sensor now logs a warning and keeps its previous state instead of raising an
AssertionErrorand failing the entity update.
This was visible in HA logs as:
WARNING [mobileUsage] Cloudflare block (not retrying)
ERROR Update for sensor.telenet_telemeter_..._mobile_... fails
After this fix the warning may still appear during heavy use (e.g. after running integration tests against the same IP), but the sensor will no longer error out.