diff options
Diffstat (limited to 'envmon/onewire-sysfs.py')
-rw-r--r-- | envmon/onewire-sysfs.py | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/envmon/onewire-sysfs.py b/envmon/onewire-sysfs.py index d889768..f42afee 100644 --- a/envmon/onewire-sysfs.py +++ b/envmon/onewire-sysfs.py @@ -32,8 +32,6 @@ class SensorFacade(object): def __init__(self, addr, name): self._addr = addr self._name = name - self._cached = None - self._cachets = None self._backoff = None def _path(self): @@ -62,33 +60,22 @@ class SensorFacade(object): @property def temperature(self): - if self._cachets > time.time() - 50: - return self._cached if self._backoff > time.time(): - if self._cachets > time.time() - 250: - return self._cached return None try: rv = self.get_temperature() if rv > 65 or rv < -25: raise OutOfRange, (self._path(), rv) - self._cached = rv - self._cachets = time.time() - self._backoff = None - print '\033[32m', self._name, 'read', self._cached, '\033[m' - return self._cached + # print '\033[32m', self._name, 'read', rv, '\033[m' + return rv except SensorNotPresent: self._backoff = time.time() + 2 + random.expovariate(1./3.) * 2 - print '\033[31m', self._name, 'SensorNotPresent back-off', self._backoff - time.time(), '\033[m' - if self._cachets > time.time() - 250: - return self._cached + # print '\033[31m', self._name, 'SensorNotPresent back-off', self._backoff - time.time(), '\033[m' raise except OutOfRange: self._backoff = time.time() + 15 + random.expovariate(1./4.) * 10 - print '\033[33m', self._name, 'OutOfRange back-off', self._backoff - time.time(), '\033[m' - if self._cachets > time.time() - 250: - return self._cached + # print '\033[33m', self._name, 'OutOfRange back-off', self._backoff - time.time(), '\033[m' raise def sensor(name): |