i like the NDIR method (it works fine for CO2)...
its a good fire detector 2...
it seems like it doesnt work so good with O2... but it should be possible to do it at 760nm according to german wikipedia: