Dont rely on user inputted state - just check for a change of state between alarm triggering and alarm firing.  If installed to a specific mode (such as Away), it will have the same result