ParamStore Usage¶
Lightweight Mode (Runtime)¶
For production use, lightweight mode provides fast access to parameter values.
from pybragerone.models.param import ParamStore
# Create store
param_store = ParamStore()
# Subscribe to EventBus
async for event in event_bus.subscribe():
if event.value is None:
continue
param_store.upsert(f"{event.pool}.{event.chan}{event.idx}", event.value)
# Read values
fam = param_store.get_family("P4", 1)
temperature = fam.value if fam else None
status_fam = param_store.get_family("P5", 40)
status = status_fam.status_raw if status_fam else 0
Note
Binary sensor pattern for status bits:
status_fam = param_store.get_family("P5", 40)
status_value = status_fam.status_raw if status_fam else 0
bit_index = 3
is_active = bool(status_value & (1 << bit_index))
Asset-Aware Mode (Setup)¶
For config flow and entity discovery, enable rich metadata support.
from pybragerone.models import ParamResolver
# ParamStore stays runtime-light; ParamResolver provides asset-driven metadata.
resolver = ParamResolver.from_api(api=api_client, store=param_store, lang="en")
# Access metadata
label = await resolver.resolve_label("PARAM_0")
mapping = await resolver.get_param_mapping("PARAM_0")
print(f"label={label} mapping={mapping}")
Warning
Asset-aware mode requires fetching JavaScript assets from BragerOne web app. Use only during setup, not in production runtime!