[docs]@dataclassclassSensor:"""Defines a devices sensor properties."""id:strtype:DeviceTypemetadata:DictdataType:MetricMetaDatameasureCallback:Callable[[],Number]
[docs]defread(self)->Number:"""Read value from sensor."""returnself.measureCallback()
[docs]deftoDict(self)->Dict[str,Any]:"""Return device as a dictionary."""return{"id":self.id,"type":self.type.value,"metadata":self.metadata,"dataType":asdict(self.dataType),}