You could do the first part of your request with sample_every=np.inf
on the probe. Here’s an example showing how you can apply this to all of the probes in your model with one line of code:
import nengo
import numpy as np
with nengo.Network() as model:
model.config[nengo.Probe].sample_every = np.inf # 'disable' all probes
x = nengo.Ensemble(100, 1)
p = nengo.Probe(x) #, sample_every=np.inf)
with nengo.Simulator(model) as sim:
sim.run(1)
print(sim.data[p].size) # => 0
The second part of your request is a bit trickier. I think the easiest way to do something conditional right now would be with an approach like the one here: Spikes analysis.