Skip to content

Commit

Permalink
feat:add support for state_class and unit process
Browse files Browse the repository at this point in the history
  • Loading branch information
DoraTiger committed Dec 17, 2024
1 parent 9f9226a commit 679af9d
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions custom_components/xiaomi_home/miot/miot_device.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,9 +515,21 @@ def parse_miot_property_entity(
prop.icon = self.icon_convert(prop.unit)
device_class = SPEC_PROP_TRANS_MAP['properties'][prop_name][
'device_class']
prop.platform = device_class

result = {'platform': platform, 'device_class': device_class}

# optional:
prop_optional = SPEC_PROP_TRANS_MAP['properties'][prop_name].get('optional')
if prop_optional:
prop_optional_state_class = prop_optional.get('state_class')
if prop_optional_state_class:
result['state_class'] = prop_optional_state_class

prop_optional_unit = prop_optional.get('unit_of_measurement')
if prop_optional_unit and not prop.unit:
result['unit_of_measurement'] = prop_optional_unit

return {'platform': platform, 'device_class': device_class}
return result

def spec_transform(self) -> None:
"""Parse service, property, event, action from device spec."""
Expand All @@ -544,6 +556,12 @@ def spec_transform(self) -> None:
if prop_entity:
prop.platform = prop_entity['platform']
prop.device_class = prop_entity['device_class']
if 'state_class' in prop_entity:
prop.state_class = prop_entity['state_class']
if 'unit_of_measurement' in prop_entity:
prop.external_unit = self.unit_convert(prop_entity['unit_of_measurement'])
prop.icon = self.icon_convert(prop_entity['unit_of_measurement'])

# general conversion
if not prop.platform:
if prop.writable:
Expand Down

0 comments on commit 679af9d

Please sign in to comment.