diff --git a/checkers/snmp.py b/checkers/snmp.py index 5b7cd40..4444c6d 100644 --- a/checkers/snmp.py +++ b/checkers/snmp.py @@ -54,17 +54,15 @@ class SnmpChecker(BaseChecker): response_time=None ) else: - details = {str(oid): str(val) for oid, val in var_binds} + # Only include main OID in details, not temperature + details = {str(var_binds[0][0]): str(var_binds[0][1])} - # Extract temperature if configured - if temperature_oid: - for oid_key, val in var_binds: - if str(oid_key) == temperature_oid: - try: - details["temperature"] = int(val) - except (ValueError, TypeError): - pass # Ignore if not a valid integer - break + # Extract temperature if configured (second OID in response) + if temperature_oid and len(var_binds) >= 2: + try: + details["temperature"] = int(var_binds[1][1]) + except (ValueError, TypeError): + pass # Ignore if not a valid integer return CheckResult( success=True, diff --git a/lan_checker.py b/lan_checker.py index 5246b86..daee183 100644 --- a/lan_checker.py +++ b/lan_checker.py @@ -177,10 +177,11 @@ class LanChecker: } if result.details: - payload["details"] = result.details # Extract temperature for SNMP checks if "temperature" in result.details: - payload["temperature"] = result.details["temperature"] + payload["temperature"] = result.details.pop("temperature") + if result.details: + payload["details"] = result.details topic = f"lan_checker/{check['id']}/state" self.mqtt_client.publish(topic, json.dumps(payload), retain=True)