pybragerone.models.api.modules

Module-related models for BragerOne API.

Functions

device_menu_refs_from_module(devices)

Extract DeviceMenuRef rows from a Module.devices list.

Classes

DeviceMenuRef(**data)

Identity for SPA devices_menu.show (manuf / dev / fw).

Module(**data)

Module information model.

ModuleCard(**data)

Module card information with client details.

ModuleGateway(**data)

Gateway information for a module.

ModuleParameterSchema(**data)

Parameter schema for a module.

class pybragerone.models.api.modules.DeviceMenuRef(**data: Any)[source]

Bases: BaseModel

Identity for SPA devices_menu.show (manuf / dev / fw).

Sourced from Module.devices[] entries so catalog menu loading can try the device-specific REST menu before the generic 0/0/0.0.0 default (#438).

Parameters:
dev_code: int
fingerprint()[source]

Stable cache-key fragment for this device menu identity.

Return type:

str

fw: str
manuf_code: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pybragerone.models.api.modules.Module(**data: Any)[source]

Bases: BaseModel

Module information model.

Parameters:
acceptedAt: int
connectedAt: int
deviceLanguageVariant: int
deviceMenu: int
devices: list[Any]
devid: str
gateway: ModuleGateway
id: int
isAcceptedAt: datetime
isConnectedAt: datetime | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

moduleAddress: str
moduleAlarms: int
moduleInterface: str
moduleServices: list[Any]
moduleTitle: str
moduleVersion: str
name: str
parameterSchemas: list[ModuleParameterSchema]
permissions: list[str]
services: list[Any]
class pybragerone.models.api.modules.ModuleCard(**data: Any)[source]

Bases: BaseModel

Module card information with client details.

Parameters:
  • id (int)

  • moduleId (int)

  • clientFullName (str)

  • clientPhoneNumber (str)

  • clientAddressStreetAndNumber (str)

  • clientAddressPostalCode (str)

  • clientAddressCity (str)

  • createdAt (datetime)

  • updatedAt (datetime)

clientAddressCity: str
clientAddressPostalCode: str
clientAddressStreetAndNumber: str
clientFullName: str
clientPhoneNumber: str
createdAt: datetime
id: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

moduleId: int
updatedAt: datetime
class pybragerone.models.api.modules.ModuleGateway(**data: Any)[source]

Bases: BaseModel

Gateway information for a module.

Parameters:
  • address (str)

  • interface (str)

  • version (str)

address: str
interface: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

version: str
class pybragerone.models.api.modules.ModuleParameterSchema(**data: Any)[source]

Bases: BaseModel

Parameter schema for a module.

Parameters:
id: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
value: dict[str, Any]
pybragerone.models.api.modules.device_menu_refs_from_module(devices: Sequence[Any] | None)[source]

Extract DeviceMenuRef rows from a Module.devices list.

Tolerates dicts and objects with manuf_code / dev_code / sw_ver_num (or fw). Incomplete rows are skipped.

Return type:

list[DeviceMenuRef]

Parameters:

devices (Sequence[Any] | None)