Skip to content

Release v1.8.2

Latest

Choose a tag to compare

@github-actions github-actions released this 20 May 19:26

Summary

Fix Classe 300X (and any future BTicino model) being filtered out of /api/homesdata and /syncapi/v1/homestatus responses because of the hardcoded DEFAULT_DEVICE_TYPES list.

Bug

async_update_topology() and async_get_home_status() previously always sent a device_types filter in the request payload, defaulting to a fixed list. That list omitted BNC3 (Classe 300X bridge) and other newer module IDs, so for those users the API returned a home with zero modules — and downstream integrations (notably bticino_intercom) failed setup with No bridge module found in the system (MAC address ID check failed).

Reported and reproduced by two users in bticino_intercom#54.

Fix

Build the payload without a device_types key when the caller does not pass one. Explicit callers still get their filter forwarded as before. This matches the natural API behaviour and avoids needing a library bump every time a new BTicino model ships.

# Before (filtered by default)
account.async_update_topology()                 # device_types=DEFAULT_DEVICE_TYPES sent

# After
account.async_update_topology()                 # no device_types sent → all modules
account.async_update_topology(device_types=...) # explicit filter still works

DEFAULT_DEVICE_TYPES is kept as a public constant so callers that want the old filter can opt in with device_types=DEFAULT_DEVICE_TYPES.

Verification

  • 4 new regression tests cover both endpoints, default and explicit paths
  • Full suite: 71 passed
  • End-to-end against the live Netatmo API on a Classe 100X home: 6 modules returned with both old and new payload variants → zero regression for existing users

Compatibility

  • Required for: Classe 300X users (BNC3 bridge)
  • Recommended for: all users — the fix is strictly more permissive
  • Breaking change? No. Callers that didn't pass device_types now get more data, not less. Callers that passed an explicit filter are unaffected.

Files

  • src/pybticino/account.py — drop default filter, conditional payload assembly
  • tests/test_account.py — 4 new tests asserting payload contents

Next

bticino_intercom will bump to pybticino>=1.8.2 in its next stable (v1.9.7) and beta (v2.0.0-rc12) releases so Classe 300X owners are unblocked without needing to manually patch the library inside their HA container.