24
24
_PRESSURE_UINT24_SCALING = const (100 )
25
25
ILLUMINANCE_UINT24 = const (0x05 )
26
26
_ILLUMINANCE_UINT24_SCALING = const (100 )
27
+ MASS_KG_UINT16 = const (0x06 )
28
+ _MASS_KG_UINT16_SCALING = const (100 )
29
+ MASS_LB_UINT16 = const (0x07 )
30
+ _MASS_LB_UINT16_SCALING = const (100 )
27
31
28
32
# Default value decimal places indicate precision
29
33
device_name = "BTHome-MPY"
32
36
humidity = 0.00 # percent (relative humidity)
33
37
pressure = 0.00 # hectoPascals (millibars)
34
38
illuminance = 0.0 # Lux
39
+ mass = 0.00 # kg or lb
35
40
36
41
def _pack_device_name ():
37
42
assert len (device_name ) > 0
@@ -53,6 +58,10 @@ def _pack_bthome_data(object_id):
53
58
bthome_bytes = pack ('<BL' , PRESSURE_UINT24 , round (pressure * _PRESSURE_UINT24_SCALING ))[:- 1 ]
54
59
elif object_id == ILLUMINANCE_UINT24 :
55
60
bthome_bytes = pack ('<BL' , ILLUMINANCE_UINT24 , round (illuminance * _ILLUMINANCE_UINT24_SCALING ))[:- 1 ]
61
+ elif object_id == MASS_KG_UINT16 :
62
+ bthome_bytes = pack ('<Bh' , MASS_KG_UINT16 , round (mass * _MASS_KG_UINT16_SCALING ))
63
+ elif object_id == MASS_LB_UINT16 :
64
+ bthome_bytes = pack ('<Bh' , MASS_LB_UINT16 , round (mass * _MASS_LB_UINT16_SCALING ))
56
65
else :
57
66
bthome_bytes = bytes ()
58
67
print ("Packing with data:" , bthome_bytes .hex ().upper ())
0 commit comments