I bought three of them for the first mill I retro fitted but they are no longer sold so I made them for the one I have now. On my lathe and the next mill I am doing I have high quality industrial limit switches but they are just used to signal my servo drives to look for the index pulse on the encoder, this gives extremely accurate homing. However the optos are also accurate.
Micro switches also work well, maybe not quite as accurate but should be more than needed on a router (which I presume a ShopBot is? )
The Jog Home button would be easy enough to do with a VB button added to the screen, just have the following in the button.
Code ("G28X0Y0Z0")
That would move all axis together, if you preferred the Z to move first then just have
Code ("G0G53Z0")
While IsMoving()
Wend
Code ("G0G53X0Y0")
Hood