This is what I did (as described in a different thread), making use of as many "of the shelf components as possible…
http://www.redgrendel.com/the-doorbell/
What needs to happen if the bell button is pressed can be set, either the doorbell rings, or the lights flash (or both)
Notification is send to my smart phone…