Przeglądaj źródła

Add temperature of coral tpu to telemetry mqtt message

Matt Clayton 3 lat temu
rodzic
commit
8b2622a234
1 zmienionych plików z 20 dodań i 0 usunięć
  1. 20 0
      frigate/stats.py

+ 20 - 0
frigate/stats.py

@@ -4,6 +4,7 @@ import threading
 import time
 import psutil
 import shutil
+import os
 
 from frigate.config import FrigateConfig
 from frigate.const import RECORD_DIR, CLIPS_DIR, CACHE_DIR
@@ -30,6 +31,24 @@ def get_fs_type(path):
             bestMatch = part.mountpoint
     return fsType
 
+def read_temperature(path):
+    if os.path.isfile(path):
+        with open(path) as f:
+            line=f.readline().strip()
+            return int(line)/1000
+    return None
+
+def get_temperatures():
+    temps={}
+
+    # Get temperatures for all attached Corals
+    base="/sys/class/apex/"
+    for apex in os.listdir(base):
+        temp=read_temperature(os.path.join(base,apex,"temp"))
+        if temp is not None:
+            temps[apex]=temp
+
+    return temps
 
 def stats_snapshot(stats_tracking):
     camera_metrics = stats_tracking["camera_metrics"]
@@ -61,6 +80,7 @@ def stats_snapshot(stats_tracking):
         "uptime": (int(time.time()) - stats_tracking["started"]),
         "version": VERSION,
         "storage": {},
+        "temperatures" : get_temperatures()
     }
 
     for path in [RECORD_DIR, CLIPS_DIR, CACHE_DIR, "/dev/shm"]: