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(); } } } }