diff --git a/z_server/devices/__init__.py b/z_server/devices/__init__.py index e037358..5ddd436 100644 --- a/z_server/devices/__init__.py +++ b/z_server/devices/__init__.py @@ -34,15 +34,17 @@ class base(object): logger.debug("Target value for device identified: %s: %s", key, repr(value)) def state(self, key, value): - self.__state_storage__[key] = value + self.__state_storage__[key] = time.time(), value logger.debug("Device state identified: %s: %s", key, repr(value)) def status(self, key): + tm_s, value_s = self.__state_storage__.get(key, (0, None)) try: tm_t, value_t = self.__target_storage__[key] - value_s = self.__state_storage__.get(key) except KeyError: - return {"status": nagios.Nagios.UNKNOWN, "msg": "Device exists, but no setpoint change or unknown monitoring"} + if value_s is not None: + return {"status": nagios.Nagios.WARNING, "msg": "Current temperature setpoint %.1f°C (age=%.1fs), but never received a setpoint" % (value_s, time.time()-tm_s)} + return {"status": nagios.Nagios.UNKNOWN, "msg": "Device exists, but no data received or unknown monitoring"} else: tm = time.time() dt = tm - tm_t