button watch based on variable state rather than pin read