Fix max temp display - properly classify HTTP sensor CPU temps
This commit is contained in:
parent
f3a2fd0392
commit
009131099a
Binary file not shown.
|
|
@ -86,18 +86,19 @@ class HTTPSensorClient:
|
|||
for line in output.splitlines():
|
||||
line = line.strip()
|
||||
|
||||
# New chip section
|
||||
if line.endswith(":") and not line.startswith(" "):
|
||||
current_chip = line.rstrip(":")
|
||||
continue
|
||||
# New chip section - chip names typically don't have spaces or colons at start
|
||||
if line and not line.startswith("_") and ":" not in line and not line[0].isdigit():
|
||||
if "Adapter:" not in line and "ERROR" not in line.upper():
|
||||
current_chip = line
|
||||
continue
|
||||
|
||||
# Temperature reading
|
||||
if "_input:" in line and "temp" in line.lower():
|
||||
parts = line.split(":")
|
||||
if len(parts) == 2:
|
||||
if len(parts) >= 2:
|
||||
name = parts[0].strip()
|
||||
try:
|
||||
value = float(parts[1].strip())
|
||||
value = float(parts[1].strip().split()[0]) # Handle "34.000" or "34.000 (high ="
|
||||
location = self._classify_sensor_name(name, current_chip)
|
||||
temps.append(TemperatureReading(
|
||||
name=f"{current_chip}/{name}",
|
||||
|
|
@ -106,26 +107,42 @@ class HTTPSensorClient:
|
|||
status="ok",
|
||||
source="http"
|
||||
))
|
||||
except ValueError:
|
||||
except (ValueError, IndexError):
|
||||
pass
|
||||
|
||||
return temps
|
||||
|
||||
def _classify_sensor_name(self, name: str, chip: str) -> str:
|
||||
"""Classify sensor location from name."""
|
||||
import re
|
||||
name_lower = name.lower()
|
||||
if "core" in name_lower:
|
||||
if "0" in name or "1" in name:
|
||||
return "cpu1"
|
||||
elif "2" in name or "3" in name:
|
||||
chip_lower = chip.lower()
|
||||
|
||||
# Check chip name first for CPU identification
|
||||
if "coretemp" in chip_lower:
|
||||
# Extract CPU number from chip (coretemp-isa-0000 = cpu1, coretemp-isa-0001 = cpu2)
|
||||
if "0001" in chip or "isa-0001" in chip_lower:
|
||||
return "cpu2"
|
||||
return "cpu1"
|
||||
|
||||
# Check sensor name for core temps
|
||||
if "core" in name_lower:
|
||||
# Try to determine which CPU based on core number
|
||||
core_match = re.search(r'core\s*(\d+)', name_lower)
|
||||
if core_match:
|
||||
core_num = int(core_match.group(1))
|
||||
if core_num >= 6:
|
||||
return "cpu2"
|
||||
return "cpu1"
|
||||
return "cpu"
|
||||
elif "package" in name_lower:
|
||||
return "cpu"
|
||||
elif "tdie" in name_lower or "tctl" in name_lower:
|
||||
return "cpu"
|
||||
elif "pcie" in name_lower or "nvme" in name_lower or "gpu" in name_lower:
|
||||
elif "pcie" in name_lower or "nvme" in name_lower or "composite" in name_lower:
|
||||
return "pcie"
|
||||
elif "loc1" in name_lower or "loc2" in name_lower:
|
||||
return "chipset"
|
||||
return "other"
|
||||
|
||||
def is_healthy(self) -> bool:
|
||||
|
|
|
|||
353
server.log
353
server.log
|
|
@ -1,345 +1,26 @@
|
|||
INFO: Started server process [25918]
|
||||
INFO: Started server process [29754]
|
||||
INFO: Waiting for application startup.
|
||||
INFO: Application startup complete.
|
||||
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
|
||||
INFO: 192.168.5.30:64198 - "GET / HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:64198 - "GET /api/status HTTP/1.1" 401 Unauthorized
|
||||
INFO: 192.168.5.30:64198 - "GET /login HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55306 - "GET /api/status HTTP/1.1" 401 Unauthorized
|
||||
INFO: 192.168.5.30:55306 - "GET /login HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:54183 - "GET /login HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:149: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
self._sessions[token] = (username, datetime.utcnow() + timedelta(days=7))
|
||||
INFO: 127.0.0.1:33886 - "POST /api/auth/login HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "POST /api/auth/login HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET / HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:36770 - "POST /api/auth/login HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
2026-02-20 17:07:43,397 - fan_controller - INFO - Loaded config from /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET /favicon.ico HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:44038 - "GET /api/curves HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:07:48,925 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:07:49,084 - fan_controller - INFO - Connected to IPMI at 192.168.5.191
|
||||
INFO: 192.168.5.30:61387 - "POST /api/config/ipmi HTTP/1.1" 200 OK
|
||||
2026-02-20 17:23:59,479 - fan_controller - INFO - Loaded config from /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:23:59,481 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:23:59,638 - fan_controller - INFO - Connected to IPMI at 192.168.5.191
|
||||
2026-02-20 17:23:59,638 - fan_controller - INFO - HTTP sensor client initialized for http://192.168.5.200:8888
|
||||
2026-02-20 17:23:59,639 - fan_controller - INFO - IPMI Controller service started
|
||||
INFO: 127.0.0.1:36774 - "POST /api/control/auto HTTP/1.1" 200 OK
|
||||
2026-02-20 17:23:59,796 - fan_controller - INFO - Manual fan control enabled
|
||||
2026-02-20 17:24:04,639 - fan_controller - INFO - Fan 0xff speed set to 12%
|
||||
2026-02-20 17:24:04,640 - fan_controller - INFO - All fans set to 12% (Temp 35.0°C)
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET /favicon.ico HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:07:56,586 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:07:56,769 - fan_controller - INFO - Manual fan control enabled
|
||||
2026-02-20 17:07:56,924 - fan_controller - INFO - Connected to IPMI at 192.168.5.191
|
||||
2026-02-20 17:07:56,925 - fan_controller - INFO - HTTP sensor client initialized for http://192.168.5.200:8888
|
||||
2026-02-20 17:07:56,926 - fan_controller - INFO - IPMI Controller service started
|
||||
INFO: 192.168.5.30:61387 - "POST /api/control/auto HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:07:57,084 - fan_controller - INFO - Manual fan control enabled
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:61387 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
2026-02-20 17:08:01,333 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:08:01,540 - fan_controller - INFO - Fan 0xff speed set to 45%
|
||||
INFO: 192.168.5.30:61387 - "POST /api/control/manual HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:08:03,050 - fan_controller - INFO - Fan 0xff speed set to 32%
|
||||
2026-02-20 17:08:03,050 - fan_controller - INFO - All fans set to 32% (Temp 51.0°C)
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:57617 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:149: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
self._sessions[token] = (username, datetime.utcnow() + timedelta(days=7))
|
||||
INFO: 127.0.0.1:53770 - "POST /api/auth/login HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:53786 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:46972 - "POST /api/auth/login HTTP/1.1" 200 OK
|
||||
2026-02-20 17:10:19,582 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:10:19,744 - fan_controller - INFO - Manual fan control enabled
|
||||
INFO: 127.0.0.1:46980 - "POST /api/control/auto HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:33742 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:10:34,455 - fan_controller - INFO - Fan 0xff speed set to 30%
|
||||
2026-02-20 17:10:34,456 - fan_controller - INFO - All fans set to 30% (Temp 50.0°C)
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:11:07,821 - fan_controller - INFO - Fan 0xff speed set to 32%
|
||||
2026-02-20 17:11:07,822 - fan_controller - INFO - All fans set to 32% (Temp 51.0°C)
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:11:54,564 - fan_controller - INFO - Fan 0xff speed set to 30%
|
||||
2026-02-20 17:11:54,564 - fan_controller - INFO - All fans set to 30% (Temp 50.0°C)
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:12:24,621 - fan_controller - INFO - Fan 0xff speed set to 32%
|
||||
2026-02-20 17:12:24,622 - fan_controller - INFO - All fans set to 32% (Temp 51.0°C)
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET / HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
2026-02-20 17:12:50,306 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
INFO: 192.168.5.30:55959 - "POST /api/curves/active HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:12:51,151 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
INFO: 192.168.5.30:55959 - "POST /api/curves/active HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:13:04,319 - fan_controller - INFO - Saved config to /home/devmatrix/projects/fan-controller-v2/data/config.json
|
||||
2026-02-20 17:13:04,478 - fan_controller - INFO - Manual fan control enabled
|
||||
INFO: 192.168.5.30:55959 - "POST /api/control/auto HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
/home/devmatrix/projects/fan-controller-v2/web_server.py:156: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
|
||||
if datetime.utcnow() > expiry:
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 192.168.5.30:55959 - "GET /api/status HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:34428 - "GET /api/status HTTP/1.1" 200 OK
|
||||
2026-02-20 17:24:19,530 - fan_controller - INFO - Fan 0xff speed set to 13%
|
||||
2026-02-20 17:24:19,531 - fan_controller - INFO - All fans set to 13% (Temp 37.0°C)
|
||||
|
|
|
|||
Loading…
Reference in New Issue