code: func (h *haManager) timer() <-chan time.Time {
  	if s := h.state(); s == seesaw.HADisabled || s == seesaw.HAUnknown {
  		return make(chan time.Time)
  	}
  	// TODO(angusc): Make this clock-jump safe.
  	h.statusLock.RLock()
  	deadline := h.status.LastUpdate.Add(h.timeout)
  	h.statusLock.RUnlock()
  	return time.After(deadline.Sub(time.Now()))
  }
docs: // timer returns a channel that receives a Time object when the current HA state
  // expires.