Yeah is possible find RMS values from FFT, you need be sure that AnalyserNote not apply any Window (hanning, blackman, kaiser, etc) on the signal !
Two simple ways to get the same result:
RMS1 = summ of squared absulute FFOutput divided by length of samples
RMS2 = summ of absulute FFOutput squared divided by length of samples divided again by length of sample
I tested here I create a sine wave db = 50 at 450 hertz
dbimput = 50;
t = [ 0 : 1 : 10000];
f = 450;
Fs = 44100;
data =10^(dbimput/20)*sin(2*pi*f/Fs*t)';
FFTDATA = fft(data);
rms1 = sum(abs(FFTDATA /length(data)).^2)
rms2 = sum(abs(FFTDATA .^2) / length(data)) / (length(data) )
dblevel1 = 20 * log10(sqrt(rms1))
dblevel2 = 20 * log10(sqrt(rms2))
The Results for it are:
rms1 = 4.9976e+04
rms2 = 4.9976e+04
dblevel1 = 46.988
dblevel2 = 46.988