Enhance camera management features: add debug endpoint for camera manager state, implement live camera routes without authentication, and improve logging for camera initialization and status checks. Update Docker configuration to include environment variables for the web app.

This commit is contained in:
salirezav
2025-09-02 15:31:47 -04:00
parent 62dd0d162b
commit 5bdb070173
138 changed files with 672 additions and 18 deletions

View File

@@ -688,6 +688,29 @@ class APIServer:
except Exception as e:
self.logger.error(f"Failed to add video routes: {e}")
@self.app.get("/debug/camera-manager")
async def debug_camera_manager():
"""Debug endpoint to check camera manager state"""
try:
if not self.camera_manager:
return {"error": "Camera manager not available"}
return {
"available_cameras": len(self.camera_manager.available_cameras),
"camera_recorders": list(self.camera_manager.camera_recorders.keys()),
"camera_streamers": list(self.camera_manager.camera_streamers.keys()),
"streamer_states": {
name: {
"exists": streamer is not None,
"is_streaming": streamer.is_streaming() if streamer else False,
"streaming": getattr(streamer, 'streaming', False) if streamer else False
}
for name, streamer in self.camera_manager.camera_streamers.items()
}
}
except Exception as e:
return {"error": str(e)}
def _setup_event_subscriptions(self):
"""Setup event subscriptions for WebSocket broadcasting"""