diff --git a/orangepi-server/__pycache__/visualizer.cpython-313.pyc b/orangepi-server/__pycache__/visualizer.cpython-313.pyc index b54a434..3363a43 100644 Binary files a/orangepi-server/__pycache__/visualizer.cpython-313.pyc and b/orangepi-server/__pycache__/visualizer.cpython-313.pyc differ diff --git a/orangepi-server/visualizer.py b/orangepi-server/visualizer.py index 0de33a1..62811fb 100644 --- a/orangepi-server/visualizer.py +++ b/orangepi-server/visualizer.py @@ -331,7 +331,7 @@ class TargetStore: "server_time": round(now, 2), } - def update_from_frame(self, frame: dict): + async def update_from_frame(self, frame: dict): self.node_id = frame.get("node_id", self.node_id) self.sequence = frame.get("sequence", 0) self.timestamp_ms = frame.get("timestamp", 0) @@ -479,7 +479,7 @@ async def esp32_ws_forever(esp32_host: str): log.warning(f"Lỗi parse JSON từ ESP32: {message[:80]}...") continue - STATE.update_from_frame(frame) + await STATE.update_from_frame(frame) _update_zone_occupancy_from_targets(STATE) # Always push the latest state await broadcast_to_browsers()