public void CheckMessage()
        {
            if (Zone != null)
            {
                eZoneStatus currentStatus = myPanel.GetZoneObject(Zone.GetZoneNumber).GetZoneStatus;
                if (lastStatus != currentStatus)
                {
                    CrestronConsole.PrintLine("Firing Next Update for Zone {0} status changed to {1}", Zone.GetZoneName, Zone.GetZoneStatus);

                    eAreaArmedStatus areaArmedStatus =
                        currentArea.GetAreaArmedStatus;

                    string devicesToSend = string.Join(",", handler.CheckZoneNotificationProperty(zoneNumber, areaArmedStatus));
                    myPanel.SendDebug(String.Format("Zone Devices to send count {0} - {1}", devicesToSend.Length, devicesToSend));
                    if (devicesToSend.Length > 0 && !String.IsNullOrEmpty(devicesToSend))
                    {
                        myPanel.SendDebug(
                            String.Format("NotificationMessageHandler: Building Message *{0} - {1}:{2} to Devices {3}",
                                          areaName, zoneName, currentStatus, devicesToSend));
                        PushoverManager.Instance.SendMessage(devicesToSend, String.Format("{0} - {1}", areaName, zoneName), String.Format("{0}", currentStatus));
                    }

                    lastStatus = currentStatus;
                    RestartTimeout();
                }
            }
        }
        private void ProcessZoneEvent(ElkZoneEventArgs e)
        {
            if (e.EventUpdateType == eElkZoneEventUpdateType.StatusChange)
            {
                ElkZone currentZone = myPanel.GetZoneObject(e.Zone);

                int         zoneNumber = currentZone.GetZoneNumber;
                eZoneStatus zoneStatus = currentZone.GetZoneStatus;

                if (!lastZoneStatuses.ContainsKey(zoneNumber))
                {
                    lastZoneStatuses.Add(zoneNumber, new LastZoneStatus(myPanel, this, currentZone, zoneStatus));
                }
                else
                {
                    if (!lastZoneStatuses[zoneNumber].TimerRuning)
                    {
                        //lastZoneStatuses[zoneNumber].Zone = currentZone;
                        lastZoneStatuses[zoneNumber].CheckMessage();
                    }
                }
            }
        }