How do I set up a driver that will be effected by an object location and also changes based on that location
You can use the following formula:
max( 0, 1 - abs(y - 6) / 6)


max is used to stay above 0
abs(y - 6) is centered around 6, between 0 and 6 for y between 0 and 12
abs(y - 6) / 6, between 0 and 1