src.bluetooth_sig.gatt.characteristics.body_composition_measurement

Body Composition Measurement characteristic implementation.

Attributes

Classes

Name

Description

BasicOptionalFields

Basic optional fields: timestamp, user ID, and basal metabolism.

BodyCompositionFlags

Body Composition Measurement flags as per Bluetooth SIG specification.

BodyCompositionMeasurementCharacteristic

Body Composition Measurement characteristic (0x2A9C).

BodyCompositionMeasurementData

Parsed data from Body Composition Measurement characteristic.

FlagsAndBodyFat

Flags and body fat percentage with parsing offset.

MassFields

Mass-related optional fields.

MassValue

Single mass field with unit.

OtherMeasurements

Impedance, weight, and height measurements.

Module Contents

class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.BasicOptionalFields

Bases: msgspec.Struct

Basic optional fields: timestamp, user ID, and basal metabolism.

basal_metabolism: int | None
offset: int
timestamp: datetime.datetime | None
user_id: int | None
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.BodyCompositionFlags

Bases: enum.IntFlag

Body Composition Measurement flags as per Bluetooth SIG specification.

BASAL_METABOLISM_PRESENT = 8
BODY_WATER_MASS_PRESENT = 256
FAT_FREE_MASS_PRESENT = 64
HEIGHT_PRESENT = 2048
IMPEDANCE_PRESENT = 512
IMPERIAL_UNITS = 1
MUSCLE_MASS_PRESENT = 16
MUSCLE_PERCENTAGE_PRESENT = 32
SOFT_LEAN_MASS_PRESENT = 128
TIMESTAMP_PRESENT = 2
USER_ID_PRESENT = 4
WEIGHT_PRESENT = 1024
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.BodyCompositionMeasurementCharacteristic

Bases: src.bluetooth_sig.gatt.characteristics.base.BaseCharacteristic[BodyCompositionMeasurementData]

Body Composition Measurement characteristic (0x2A9C).

Used to transmit body composition measurement data including body fat percentage, muscle mass, bone mass, water percentage, and other body metrics.

allow_variable_length: bool = True
max_length: int = 50
min_length: int = 4
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.BodyCompositionMeasurementData

Bases: msgspec.Struct

Parsed data from Body Composition Measurement characteristic.

basal_metabolism: int | None = None
body_fat_percentage: float
body_water_mass: float | None = None
fat_free_mass: float | None = None
flags: BodyCompositionFlags
height: float | None = None
impedance: float | None = None
measurement_units: bluetooth_sig.types.units.MeasurementSystem
muscle_mass: float | None = None
muscle_mass_unit: bluetooth_sig.types.units.WeightUnit | None = None
muscle_percentage: float | None = None
soft_lean_mass: float | None = None
timestamp: datetime.datetime | None = None
user_id: int | None = None
weight: float | None = None
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.FlagsAndBodyFat

Bases: msgspec.Struct

Flags and body fat percentage with parsing offset.

body_fat_percentage: float
flags: BodyCompositionFlags
offset: int
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.MassFields

Bases: msgspec.Struct

Mass-related optional fields.

body_water_mass: float | None
fat_free_mass: float | None
muscle_mass: float | None
muscle_mass_unit: bluetooth_sig.types.units.WeightUnit | None
muscle_percentage: float | None
offset: int
soft_lean_mass: float | None
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.MassValue

Bases: msgspec.Struct

Single mass field with unit.

unit: bluetooth_sig.types.units.WeightUnit
value: float
class src.bluetooth_sig.gatt.characteristics.body_composition_measurement.OtherMeasurements

Bases: msgspec.Struct

Impedance, weight, and height measurements.

height: float | None
impedance: float | None
weight: float | None
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.BODY_FAT_PERCENTAGE_RESOLUTION = 0.1
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.HEIGHT_RESOLUTION_IMPERIAL = 0.1
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.HEIGHT_RESOLUTION_METRIC = 0.001
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.IMPEDANCE_RESOLUTION = 0.1
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.MASS_RESOLUTION_KG = 0.005
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.MASS_RESOLUTION_LB = 0.01
src.bluetooth_sig.gatt.characteristics.body_composition_measurement.MUSCLE_PERCENTAGE_RESOLUTION = 0.1