diff --git a/miio/devicestatus.py b/miio/devicestatus.py index 66f605f4d..dccc77cb6 100644 --- a/miio/devicestatus.py +++ b/miio/devicestatus.py @@ -143,7 +143,8 @@ def sensor(name: str, *, unit: str = "", **kwargs): """ def decorator_sensor(func): - property_name = func.__name__ + property_name = str(func.__name__) + qualified_name = str(func.__qualname__) def _sensor_type_for_return_type(func): rtype = get_type_hints(func).get("return") @@ -157,8 +158,8 @@ def _sensor_type_for_return_type(func): sensor_type = _sensor_type_for_return_type(func) descriptor = SensorDescriptor( - id=str(property_name), - property=str(property_name), + id=qualified_name, + property=property_name, name=name, unit=unit, type=sensor_type, @@ -196,14 +197,15 @@ def setting( """ def decorator_setting(func): - property_name = func.__name__ + property_name = str(func.__name__) + qualified_name = str(func.__qualname__) if setter is None and setter_name is None: raise Exception("Either setter or setter_name needs to be defined") common_values = { - "id": str(property_name), - "property": str(property_name), + "id": qualified_name, + "property": property_name, "name": name, "unit": unit, "setter": setter,