from platypush.plugins import Plugin, action class SensorPlugin(Plugin): """ Sensor abstract plugin. Any plugin that interacts with sensors should implement this class (and the get_measurement() method) """ def __init__(self, **kwargs): super().__init__(**kwargs) @action def get_measurement(self, *args, **kwargs): """ Implemented by the subclasses. :returns: Either a raw scalar: ``output = 273.16`` or a name-value dictionary with the values that have been read:: output = { "temperature": 21.5, "humidity": 41.0 } or a list of values:: [ 0.01, 0.34, 0.53, ... ] """ raise NotImplementedError('get_measurement should be implemented in a derived class') @action def get_data(self, *args, **kwargs): """ Alias for ``get_measurement`` """ return self.get_measurement(*args, **kwargs).output @action def close(self): pass # vim:sw=4:ts=4:et: