Conditionally disable probes

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.