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 e0fa947da6
commit 0e53034f30
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"""