I've had it running today, have been manual feeding it these commands...
G31 Z-100 F300 this lowered the head from wherever it was sitting and stopped when the probe switch closed.
G92 Z0 Set offset to zero.
G00 Z20 This moved the head back up by the amount of float head travel I have.
G92 Z0 Set offset to zero.
G00 Z1 This raised the head a further millimetre.

It it all seemed to work ok, I would use a macro with error checking but really can't find any understandable code.

it would be useful if someone could post some macro code that could be inserted into the M3 command, all I want to do is probe the surface before every cut starts.