From 828308717a30e1c42da0f931946678e509788584 Mon Sep 17 00:00:00 2001 From: Ryan Wagoner Date: Tue, 15 Nov 2016 12:37:56 -0500 Subject: [PATCH] 1.0.5 - Added web service API for Samsung SmartThings integration --- HAILogger.sln | 22 + HAILogger/App.config | 16 + HAILogger/AreaContract.cs | 29 + HAILogger/CommandContract.cs | 14 + HAILogger/CoreServer.cs | 1214 ++++++++++++++++++++++++ HAILogger/Event.cs | 165 ++++ HAILogger/Global.cs | 54 ++ HAILogger/HAI.Controller.dll | Bin 0 -> 1138320 bytes HAILogger/HAILogger.csproj | 107 +++ HAILogger/HAILogger.ini | 55 ++ HAILogger/HAIService.cs | 275 ++++++ HAILogger/Helper.cs | 107 +++ HAILogger/IHAIService.cs | 94 ++ HAILogger/NameContract.cs | 14 + HAILogger/Program.cs | 54 ++ HAILogger/ProjectInstaller.Designer.cs | 56 ++ HAILogger/ProjectInstaller.cs | 17 + HAILogger/ProjectInstaller.resx | 129 +++ HAILogger/Properties/AssemblyInfo.cs | 36 + HAILogger/Prowl.cs | 50 + HAILogger/Service.Designer.cs | 42 + HAILogger/Service.cs | 35 + HAILogger/Service.resx | 123 +++ HAILogger/Settings.cs | 259 +++++ HAILogger/SubscribeContract.cs | 11 + HAILogger/ThermostatContract.cs | 33 + HAILogger/UnitContract.cs | 17 + HAILogger/WebNotification.cs | 50 + HAILogger/WebService.cs | 44 + HAILogger/ZoneContract.cs | 17 + README.md | 85 ++ 31 files changed, 3224 insertions(+) create mode 100644 HAILogger.sln create mode 100644 HAILogger/App.config create mode 100644 HAILogger/AreaContract.cs create mode 100644 HAILogger/CommandContract.cs create mode 100644 HAILogger/CoreServer.cs create mode 100644 HAILogger/Event.cs create mode 100644 HAILogger/Global.cs create mode 100644 HAILogger/HAI.Controller.dll create mode 100644 HAILogger/HAILogger.csproj create mode 100644 HAILogger/HAILogger.ini create mode 100644 HAILogger/HAIService.cs create mode 100644 HAILogger/Helper.cs create mode 100644 HAILogger/IHAIService.cs create mode 100644 HAILogger/NameContract.cs create mode 100644 HAILogger/Program.cs create mode 100644 HAILogger/ProjectInstaller.Designer.cs create mode 100644 HAILogger/ProjectInstaller.cs create mode 100644 HAILogger/ProjectInstaller.resx create mode 100644 HAILogger/Properties/AssemblyInfo.cs create mode 100644 HAILogger/Prowl.cs create mode 100644 HAILogger/Service.Designer.cs create mode 100644 HAILogger/Service.cs create mode 100644 HAILogger/Service.resx create mode 100644 HAILogger/Settings.cs create mode 100644 HAILogger/SubscribeContract.cs create mode 100644 HAILogger/ThermostatContract.cs create mode 100644 HAILogger/UnitContract.cs create mode 100644 HAILogger/WebNotification.cs create mode 100644 HAILogger/WebService.cs create mode 100644 HAILogger/ZoneContract.cs diff --git a/HAILogger.sln b/HAILogger.sln new file mode 100644 index 0000000..62ae7fd --- /dev/null +++ b/HAILogger.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HAILogger", "HAILogger\HAILogger.csproj", "{0A636707-98BA-45AB-9843-AED430933CEE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0A636707-98BA-45AB-9843-AED430933CEE}.Debug|x86.ActiveCfg = Debug|x86 + {0A636707-98BA-45AB-9843-AED430933CEE}.Debug|x86.Build.0 = Debug|x86 + {0A636707-98BA-45AB-9843-AED430933CEE}.Release|x86.ActiveCfg = Release|x86 + {0A636707-98BA-45AB-9843-AED430933CEE}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/HAILogger/App.config b/HAILogger/App.config new file mode 100644 index 0000000..966d52a --- /dev/null +++ b/HAILogger/App.config @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/HAILogger/AreaContract.cs b/HAILogger/AreaContract.cs new file mode 100644 index 0000000..52af3fe --- /dev/null +++ b/HAILogger/AreaContract.cs @@ -0,0 +1,29 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class AreaContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public string name { get; set; } + + [DataMember] + public string burglary { get; set; } + + [DataMember] + public string co { get; set; } + + [DataMember] + public string fire { get; set; } + + [DataMember] + public string water { get; set; } + + [DataMember] + public string mode { get; set; } + } +} diff --git a/HAILogger/CommandContract.cs b/HAILogger/CommandContract.cs new file mode 100644 index 0000000..cb97c9f --- /dev/null +++ b/HAILogger/CommandContract.cs @@ -0,0 +1,14 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class CommandContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public ushort value { get; set; } + } +} diff --git a/HAILogger/CoreServer.cs b/HAILogger/CoreServer.cs new file mode 100644 index 0000000..85a54ce --- /dev/null +++ b/HAILogger/CoreServer.cs @@ -0,0 +1,1214 @@ +using HAI_Shared; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Odbc; +using System.IO; +using System.Text; +using System.Threading; + +namespace HAILogger +{ + class CoreServer + { + private bool quitting = false; + private bool terminate = false; + + // HAI Controller + private clsHAC HAC = null; + private DateTime retry = DateTime.MinValue; + private List alarms = new List(); + + // Thermostats + private Dictionary tstats = new Dictionary(); + private System.Timers.Timer tstat_timer = new System.Timers.Timer(); + private object tstat_lock = new object(); + + // Time Sync + private System.Timers.Timer tsync_timer = new System.Timers.Timer(); + private DateTime tsync_check = DateTime.MinValue; + + // mySQL Database + private OdbcConnection mysql_conn = null; + private DateTime mysql_retry = DateTime.MinValue; + private OdbcCommand mysql_command = null; + private Queue mysql_queue = new Queue(); + private object mysql_lock = new object(); + + public CoreServer() + { + Thread handler = new Thread(Server); + handler.Start(); + } + + private void Server() + { + Global.event_log = "EventLog.txt"; + Global.event_source = "HAI Logger"; + + if (string.IsNullOrEmpty(Global.dir_config)) + Global.dir_config = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); + + Settings.LoadSettings(); + + Event.WriteInfo("CoreServer", "Starting up server"); + + tstat_timer.Elapsed += tstat_timer_Elapsed; + tstat_timer.AutoReset = false; + + tsync_timer.Elapsed += tsync_timer_Elapsed; + tsync_timer.AutoReset = false; + + if (Global.mysql_logging) + { + Event.WriteInfo("DatabaseLogger", "Connecting to database"); + + mysql_conn = new OdbcConnection(Global.mysql_connection); + + // Must make an initial connection + if (!DBOpen()) + Environment.Exit(1); + } + + HAC = new clsHAC(); + + WebService web = new WebService(HAC); + + if (Global.webapi_enabled) + web.Start(); + + Connect(); + + while (true) + { + // End gracefully when not logging or database queue empty + if (quitting && (!Global.mysql_logging || DBQueueCount() == 0)) + break; + + // Make sure controller connection is active + if (HAC.Connection.ConnectionState == enuOmniLinkConnectionState.Offline && + retry < DateTime.Now) + { + Connect(); + } + + // Make sure database connection is active + if (Global.mysql_logging && mysql_conn.State != ConnectionState.Open) + { + // Nothing we can do if shutting down + if (quitting) + break; + + if (mysql_retry < DateTime.Now) + DBOpen(); + + if (mysql_conn.State != ConnectionState.Open) + { + // Loop to prevent database queries from executing + Thread.Sleep(1000); + continue; + } + } + + // Sleep when not logging or database queue empty + if (!Global.mysql_logging || DBQueueCount() == 0) + { + Thread.Sleep(1000); + continue; + } + + // Grab a copy in case the database query fails + string query; + lock (mysql_lock) + query = mysql_queue.Peek(); + + try + { + // Execute the database query + mysql_command = new OdbcCommand(query, mysql_conn); + mysql_command.ExecuteNonQuery(); + + // Successful remove query from queue + lock (mysql_lock) + mysql_queue.Dequeue(); + } + catch (Exception ex) + { + if (mysql_conn.State != ConnectionState.Open) + { + Event.WriteWarn("DatabaseLogger", "Lost connection to database"); + } + else + { + Event.WriteError("DatabaseLogger", "Error executing query\r\n" + ex.Message + "\r\n" + query); + + // Prevent an endless loop from failed query + lock (mysql_lock) + mysql_queue.Dequeue(); + } + } + } + + Event.WriteInfo("CoreServer", "Shutting down server"); + + if (Global.webapi_enabled) + web.Stop(); + + Disconnect(); + HAC = null; + + if(Global.mysql_logging) + DBClose(); + + terminate = true; + } + + private void Connected() + { + retry = DateTime.MinValue; + + GetNamedProperties(); + UnsolicitedNotifications(true); + + tstat_timer.Interval = ThermostatTimerInterval(); + tstat_timer.Start(); + + if (Global.hai_time_sync) + { + tsync_check = DateTime.MinValue; + + tsync_timer.Interval = TimeTimerInterval(); + tsync_timer.Start(); + } + } + + public void Shutdown() + { + quitting = true; + + while (!terminate) + Thread.Sleep(100); + + Event.WriteInfo("CoreServer", "Shutdown completed"); + } + + #region Connection + private void Connect() + { + if (HAC.Connection.ConnectionState == enuOmniLinkConnectionState.Offline) + { + retry = DateTime.Now.AddMinutes(1); + + HAC.Connection.NetworkAddress = Global.hai_address; + HAC.Connection.NetworkPort = (ushort)Global.hai_port; + HAC.Connection.ControllerKey = clsUtil.HexString2ByteArray( + String.Concat(Global.hai_key1, Global.hai_key2)); + + HAC.PreferredNetworkProtocol = clsHAC.enuPreferredNetworkProtocol.TCP; + HAC.Connection.ConnectionType = enuOmniLinkConnectionType.Network_TCP; + + HAC.Connection.Connect(HandleConnectStatus, HandleUnsolicitedPackets); + } + } + + private void Disconnect() + { + if (HAC.Connection.ConnectionState != enuOmniLinkConnectionState.Offline) + HAC.Connection.Disconnect(); + } + + private void HandleConnectStatus(enuOmniLinkCommStatus CS) + { + switch (CS) + { + case enuOmniLinkCommStatus.NoReply: + Event.WriteError("CoreServer", "CONNECTION STATUS: No Reply"); + break; + case enuOmniLinkCommStatus.UnrecognizedReply: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unrecognized Reply"); + break; + case enuOmniLinkCommStatus.UnsupportedProtocol: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unsupported Protocol"); + break; + case enuOmniLinkCommStatus.ClientSessionTerminated: + Event.WriteError("CoreServer", "CONNECTION STATUS: Client Session Terminated"); + break; + case enuOmniLinkCommStatus.ControllerSessionTerminated: + Event.WriteError("CoreServer", "CONNECTION STATUS: Controller Session Terminated"); + break; + case enuOmniLinkCommStatus.CannotStartNewSession: + Event.WriteError("CoreServer", "CONNECTION STATUS: Cannot Start New Session"); + break; + case enuOmniLinkCommStatus.LoginFailed: + Event.WriteError("CoreServer", "CONNECTION STATUS: Login Failed"); + break; + case enuOmniLinkCommStatus.UnableToOpenSocket: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unable To Open Socket"); + break; + case enuOmniLinkCommStatus.UnableToConnect: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unable To Connect"); + break; + case enuOmniLinkCommStatus.SocketClosed: + Event.WriteError("CoreServer", "CONNECTION STATUS: Socket Closed"); + break; + case enuOmniLinkCommStatus.UnexpectedError: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unexpected Error"); + break; + case enuOmniLinkCommStatus.UnableToCreateSocket: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unable To Create Socket"); + break; + case enuOmniLinkCommStatus.Retrying: + Event.WriteWarn("CoreServer", "CONNECTION STATUS: Retrying"); + break; + case enuOmniLinkCommStatus.Connected: + IdentifyController(); + break; + case enuOmniLinkCommStatus.Connecting: + Event.WriteInfo("CoreServer", "CONNECTION STATUS: Connecting"); + break; + case enuOmniLinkCommStatus.Disconnected: + Event.WriteInfo("CoreServer", "CONNECTION STATUS: Disconnected"); + break; + case enuOmniLinkCommStatus.InterruptedFunctionCall: + if(!quitting) + Event.WriteError("CoreServer", "CONNECTION STATUS: Interrupted Function Call"); + break; + case enuOmniLinkCommStatus.PermissionDenied: + Event.WriteError("CoreServer", "CONNECTION STATUS: Permission Denied"); + break; + case enuOmniLinkCommStatus.BadAddress: + Event.WriteError("CoreServer", "CONNECTION STATUS: Bad Address"); + break; + case enuOmniLinkCommStatus.InvalidArgument: + Event.WriteError("CoreServer", "CONNECTION STATUS: Invalid Argument"); + break; + case enuOmniLinkCommStatus.TooManyOpenFiles: + Event.WriteError("CoreServer", "CONNECTION STATUS: Too Many Open Files"); + break; + case enuOmniLinkCommStatus.ResourceTemporarilyUnavailable: + Event.WriteError("CoreServer", "CONNECTION STATUS: Resource Temporarily Unavailable"); + break; + case enuOmniLinkCommStatus.OperationNowInProgress: + Event.WriteWarn("CoreServer", "CONNECTION STATUS: Operation Now In Progress"); + break; + case enuOmniLinkCommStatus.OperationAlreadyInProgress: + Event.WriteWarn("CoreServer", "CONNECTION STATUS: Operation Already In Progress"); + break; + case enuOmniLinkCommStatus.SocketOperationOnNonSocket: + Event.WriteError("CoreServer", "CONNECTION STATUS: Socket Operation On Non Socket"); + break; + case enuOmniLinkCommStatus.DestinationAddressRequired: + Event.WriteError("CoreServer", "CONNECTION STATUS: Destination Address Required"); + break; + case enuOmniLinkCommStatus.MessgeTooLong: + Event.WriteError("CoreServer", "CONNECTION STATUS: Message Too Long"); + break; + case enuOmniLinkCommStatus.WrongProtocolType: + Event.WriteError("CoreServer", "CONNECTION STATUS: Wrong Protocol Type"); + break; + case enuOmniLinkCommStatus.BadProtocolOption: + Event.WriteError("CoreServer", "CONNECTION STATUS: Bad Protocol Option"); + break; + case enuOmniLinkCommStatus.ProtocolNotSupported: + Event.WriteError("CoreServer", "CONNECTION STATUS: Protocol Not Supported"); + break; + case enuOmniLinkCommStatus.SocketTypeNotSupported: + Event.WriteError("CoreServer", "CONNECTION STATUS: Socket Type Not Supported"); + break; + case enuOmniLinkCommStatus.OperationNotSupported: + Event.WriteError("CoreServer", "CONNECTION STATUS: Operation Not Supported"); + break; + case enuOmniLinkCommStatus.ProtocolFamilyNotSupported: + Event.WriteError("CoreServer", "CONNECTION STATUS: Protocol Family Not Supported"); + break; + case enuOmniLinkCommStatus.AddressFamilyNotSupported: + Event.WriteError("CoreServer", "CONNECTION STATUS: Address Family Not Supported"); + break; + case enuOmniLinkCommStatus.AddressInUse: + Event.WriteError("CoreServer", "CONNECTION STATUS: Address In Use"); + break; + case enuOmniLinkCommStatus.AddressNotAvailable: + Event.WriteError("CoreServer", "CONNECTION STATUS: Address Not Available"); + break; + case enuOmniLinkCommStatus.NetworkIsDown: + Event.WriteError("CoreServer", "CONNECTION STATUS: Network Is Down"); + break; + case enuOmniLinkCommStatus.NetworkIsUnreachable: + Event.WriteError("CoreServer", "CONNECTION STATUS: Network Is Unreachable"); + break; + case enuOmniLinkCommStatus.NetworkReset: + Event.WriteError("CoreServer", "CONNECTION STATUS: Network Reset"); + break; + case enuOmniLinkCommStatus.ConnectionAborted: + Event.WriteError("CoreServer", "CONNECTION STATUS: Connection Aborted"); + break; + case enuOmniLinkCommStatus.ConnectionResetByPeer: + Event.WriteError("CoreServer", "CONNECTION STATUS: Connection Reset By Peer"); + break; + case enuOmniLinkCommStatus.NoBufferSpaceAvailable: + Event.WriteError("CoreServer", "CONNECTION STATUS: No Buffer Space Available"); + break; + case enuOmniLinkCommStatus.AlreadyConnected: + Event.WriteWarn("CoreServer", "CONNECTION STATUS: Already Connected"); + break; + case enuOmniLinkCommStatus.NotConnected: + Event.WriteError("CoreServer", "CONNECTION STATUS: Not Connected"); + break; + case enuOmniLinkCommStatus.CannotSendAfterShutdown: + Event.WriteError("CoreServer", "CONNECTION STATUS: Cannot Send After Shutdown"); + break; + case enuOmniLinkCommStatus.ConnectionTimedOut: + Event.WriteError("CoreServer", "CONNECTION STATUS: Connection Timed Out"); + break; + case enuOmniLinkCommStatus.ConnectionRefused: + Event.WriteError("CoreServer", "CONNECTION STATUS: Connection Refused"); + break; + case enuOmniLinkCommStatus.HostIsDown: + Event.WriteError("CoreServer", "CONNECTION STATUS: Host Is Down"); + break; + case enuOmniLinkCommStatus.HostUnreachable: + Event.WriteError("CoreServer", "CONNECTION STATUS: Host Unreachable"); + break; + case enuOmniLinkCommStatus.TooManyProcesses: + Event.WriteError("CoreServer", "CONNECTION STATUS: Too Many Processes"); + break; + case enuOmniLinkCommStatus.NetworkSubsystemIsUnavailable: + Event.WriteError("CoreServer", "CONNECTION STATUS: Network Subsystem Is Unavailable"); + break; + case enuOmniLinkCommStatus.UnsupportedVersion: + Event.WriteError("CoreServer", "CONNECTION STATUS: Unsupported Version"); + break; + case enuOmniLinkCommStatus.NotInitialized: + Event.WriteError("CoreServer", "CONNECTION STATUS: Not Initialized"); + break; + case enuOmniLinkCommStatus.ShutdownInProgress: + Event.WriteError("CoreServer", "CONNECTION STATUS: Shutdown In Progress"); + break; + case enuOmniLinkCommStatus.ClassTypeNotFound: + Event.WriteError("CoreServer", "CONNECTION STATUS: Class Type Not Found"); + break; + case enuOmniLinkCommStatus.HostNotFound: + Event.WriteError("CoreServer", "CONNECTION STATUS: Host Not Found"); + break; + case enuOmniLinkCommStatus.HostNotFoundTryAgain: + Event.WriteError("CoreServer", "CONNECTION STATUS: Host Not Found Try Again"); + break; + case enuOmniLinkCommStatus.NonRecoverableError: + Event.WriteError("CoreServer", "CONNECTION STATUS: Non Recoverable Error"); + break; + case enuOmniLinkCommStatus.NoDataOfRequestedType: + Event.WriteError("CoreServer", "CONNECTION STATUS: No Data Of Requested Type"); + break; + default: + break; + } + } + + private void IdentifyController() + { + if (HAC.Connection.ConnectionState == enuOmniLinkConnectionState.Online || + HAC.Connection.ConnectionState == enuOmniLinkConnectionState.OnlineSecure) + { + HAC.Connection.Send(new clsOL2MsgRequestSystemInformation(HAC.Connection), HandleIdentifyController); + } + } + + private void HandleIdentifyController(clsOmniLinkMessageQueueItem M, byte[] B, bool Timeout) + { + if (Timeout) + return; + + if ((B.Length > 3) && (B[2] == (byte)enuOmniLink2MessageType.SystemInformation)) + { + clsOL2MsgSystemInformation MSG = new clsOL2MsgSystemInformation(HAC.Connection, B); + if (HAC.Model == MSG.ModelNumber) + { + HAC.CopySystemInformation(MSG); + Event.WriteInfo("CoreServer", "CONTROLLER IS: " + HAC.GetModelText() + " (" + HAC.GetVersionText() + ")"); + + Connected(); + return; + } + + Event.WriteError("CoreServer", "Model does not match file"); + HAC.Connection.Disconnect(); + } + } + #endregion + + #region Names + private void GetNamedProperties() + { + Event.WriteInfo("CoreServer", "Retrieving named units"); + + GetNextNamed(enuObjectType.Area, 0); + Thread.Sleep(100); + GetNextNamed(enuObjectType.Zone, 0); + Thread.Sleep(100); + GetNextNamed(enuObjectType.Thermostat, 0); + Thread.Sleep(100); + GetNextNamed(enuObjectType.Unit, 0); + Thread.Sleep(100); + GetNextNamed(enuObjectType.Message, 0); + Thread.Sleep(100); + GetNextNamed(enuObjectType.Button, 0); + Thread.Sleep(100); + } + + private void GetNextNamed(enuObjectType type, int ix) + { + clsOL2MsgRequestProperties MSG = new clsOL2MsgRequestProperties(HAC.Connection); + MSG.ObjectType = type; + MSG.IndexNumber = (UInt16)ix; + MSG.RelativeDirection = 1; // next object after IndexNumber + MSG.Filter1 = 1; // (0=Named or Unnamed, 1=Named, 2=Unnamed). + MSG.Filter2 = 0; // Any Area + MSG.Filter3 = 0; // Any Room + HAC.Connection.Send(MSG, HandleNamedPropertiesResponse); + } + + private void HandleNamedPropertiesResponse(clsOmniLinkMessageQueueItem M, byte[] B, bool Timeout) + { + if (Timeout) + return; + + // does it look like a valid response + if ((B.Length > 3) && (B[0] == 0x21)) + { + switch ((enuOmniLink2MessageType)B[2]) + { + case enuOmniLink2MessageType.EOD: + + break; + case enuOmniLink2MessageType.Properties: + + clsOL2MsgProperties MSG = new clsOL2MsgProperties(HAC.Connection, B); + + switch (MSG.ObjectType) + { + case enuObjectType.Area: + HAC.Areas.CopyProperties(MSG); + break; + case enuObjectType.Zone: + HAC.Zones.CopyProperties(MSG); + break; + case enuObjectType.Thermostat: + HAC.Thermostats.CopyProperties(MSG); + + if (!tstats.ContainsKey(MSG.ObjectNumber)) + tstats.Add(MSG.ObjectNumber, DateTime.MinValue); + else + tstats[MSG.ObjectNumber] = DateTime.MinValue; + + HAC.Connection.Send(new clsOL2MsgRequestExtendedStatus(HAC.Connection, enuObjectType.Thermostat, MSG.ObjectNumber, MSG.ObjectNumber), HandleRequestThermostatStatus); + Event.WriteVerbose("ThermostatTimer", "Added to watch list " + HAC.Thermostats[MSG.ObjectNumber].Name); + break; + case enuObjectType.Unit: + HAC.Units.CopyProperties(MSG); + break; + case enuObjectType.Message: + HAC.Messages.CopyProperties(MSG); + break; + case enuObjectType.Button: + HAC.Buttons.CopyProperties(MSG); + break; + default: + break; + } + + GetNextNamed(MSG.ObjectType, MSG.ObjectNumber); + break; + default: + break; + } + } + } + #endregion + + #region Notifications + private void UnsolicitedNotifications(bool enable) + { + Event.WriteInfo("CoreServer", "Unsolicited notifications " + (enable ? "enabled" : "disabled")); + HAC.Connection.Send(new clsOL2EnableNotifications(HAC.Connection, enable), null); + } + + private bool HandleUnsolicitedPackets(byte[] B) + { + if ((B.Length > 3) && (B[0] == 0x21)) + { + bool handled = false; + + switch ((enuOmniLink2MessageType)B[2]) + { + case enuOmniLink2MessageType.ClearNames: + break; + case enuOmniLink2MessageType.DownloadNames: + break; + case enuOmniLink2MessageType.UploadNames: + break; + case enuOmniLink2MessageType.NameData: + break; + case enuOmniLink2MessageType.ClearVoices: + break; + case enuOmniLink2MessageType.DownloadVoices: + break; + case enuOmniLink2MessageType.UploadVoices: + break; + case enuOmniLink2MessageType.VoiceData: + break; + case enuOmniLink2MessageType.Command: + break; + case enuOmniLink2MessageType.EnableNotifications: + break; + case enuOmniLink2MessageType.SystemInformation: + break; + case enuOmniLink2MessageType.SystemStatus: + break; + case enuOmniLink2MessageType.SystemTroubles: + break; + case enuOmniLink2MessageType.SystemFeatures: + break; + case enuOmniLink2MessageType.Capacities: + break; + case enuOmniLink2MessageType.Properties: + break; + case enuOmniLink2MessageType.Status: + break; + case enuOmniLink2MessageType.EventLogItem: + break; + case enuOmniLink2MessageType.ValidateCode: + break; + case enuOmniLink2MessageType.SystemFormats: + break; + case enuOmniLink2MessageType.Login: + break; + case enuOmniLink2MessageType.Logout: + break; + case enuOmniLink2MessageType.ActivateKeypadEmg: + break; + case enuOmniLink2MessageType.ExtSecurityStatus: + break; + case enuOmniLink2MessageType.CmdExtSecurity: + break; + case enuOmniLink2MessageType.AudioSourceStatus: + break; + case enuOmniLink2MessageType.SystemEvents: + HandleUnsolicitedSystemEvent(B); + handled = true; + break; + case enuOmniLink2MessageType.ZoneReadyStatus: + break; + case enuOmniLink2MessageType.ExtendedStatus: + HandleUnsolicitedExtendedStatus(B); + handled = true; + break; + default: + break; + } + + if(Global.verbose_unhandled && !handled) + Event.WriteVerbose("CoreServer", "Unhandled notification: " + ((enuOmniLink2MessageType)B[2]).ToString()); + } + + return true; + } + + private void HandleUnsolicitedSystemEvent(byte[] B) + { + clsOL2SystemEvent MSG = new clsOL2SystemEvent(HAC.Connection, B); + + enuEventType type; + string value = string.Empty; + bool alert = false; + + if (MSG.SystemEvent >= 1 && MSG.SystemEvent <= 255) + { + type = enuEventType.USER_MACRO_BUTTON; + value = ((int)MSG.SystemEvent).ToString() + " " + HAC.Buttons[MSG.SystemEvent].Name; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 768 && MSG.SystemEvent <= 771) + { + type = enuEventType.PHONE_; + + if (MSG.SystemEvent == 768) + { + value = "DEAD"; + alert = true; + } + else if (MSG.SystemEvent == 769) + value = "RING"; + else if (MSG.SystemEvent == 770) + value = "OFF HOOK"; + else if (MSG.SystemEvent == 771) + value = "ON HOOK"; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 772 && MSG.SystemEvent <= 773) + { + type = enuEventType.AC_POWER_; + alert = true; + + if (MSG.SystemEvent == 772) + value = "OFF"; + else if (MSG.SystemEvent == 773) + value = "RESTORED"; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 774 && MSG.SystemEvent <= 775) + { + type = enuEventType.BATTERY_; + alert = true; + + if (MSG.SystemEvent == 774) + value = "LOW"; + else if (MSG.SystemEvent == 775) + value = "OK"; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 776 && MSG.SystemEvent <= 777) + { + type = enuEventType.DCM_; + alert = true; + + if (MSG.SystemEvent == 776) + value = "TROUBLE"; + else if (MSG.SystemEvent == 777) + value = "OK"; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 778 && MSG.SystemEvent <= 781) + { + type = enuEventType.ENERGY_COST_; + + if (MSG.SystemEvent == 778) + value = "LOW"; + else if (MSG.SystemEvent == 779) + value = "MID"; + else if (MSG.SystemEvent == 780) + value = "HIGH"; + else if (MSG.SystemEvent == 781) + value = "CRITICAL"; + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 782 && MSG.SystemEvent <= 787) + { + type = enuEventType.CAMERA; + value = (MSG.SystemEvent - 781).ToString(); + + LogEventStatus(type, value, alert); + } + else if (MSG.SystemEvent >= 61440 && MSG.SystemEvent <= 64511) + { + type = enuEventType.SWITCH_PRESS; + int state = (int)MSG.Data[1] - 240; + int id = (int)MSG.Data[2]; + + LogEventStatus(type, "Unit: " + id + ", State: " + state, alert); + } + else if (MSG.SystemEvent >= 64512 && MSG.SystemEvent <= 65535) + { + type = enuEventType.UPB_LINK; + int state = (int)MSG.Data[1] - 252; + int id = (int)MSG.Data[2]; + + LogEventStatus(type, "Link: " + id + ", State: " + state, alert); + } + else if (Global.verbose_unhandled) + { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < MSG.MessageLength; i++) + sb.Append(MSG.Data[i].ToString() + " "); + Event.WriteVerbose("SystemEvent", "Unhandled Raw: " + sb.ToString() + "Num: " + MSG.SystemEvent); + + int num = ((int)MSG.MessageLength - 1) / 2; + for (int i = 0; i < num; i++) + { + Event.WriteVerbose("SystemEvent", "Unhandled: " + + (int)MSG.Data[(i * 2) + 1] + " " + (int)MSG.Data[(i * 2) + 2] + ": " + + Convert.ToString(MSG.Data[(i * 2) + 1], 2).PadLeft(8, '0') + " " + Convert.ToString(MSG.Data[(i * 2) + 2], 2).PadLeft(8, '0')); + } + } + } + + private void HandleUnsolicitedExtendedStatus(byte[] B) + { + clsOL2MsgExtendedStatus MSG = new clsOL2MsgExtendedStatus(HAC.Connection, B); + + switch (MSG.ObjectType) + { + case enuObjectType.Area: + for (byte i = 0; i < MSG.AreaCount(); i++) + { + HAC.Areas[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + LogAreaStatus(MSG.ObjectNumber(i)); + + WebNotification.Send("area", Helper.Serialize(Helper.ConvertArea( + MSG.ObjectNumber(i), HAC.Areas[MSG.ObjectNumber(i)]))); + } + break; + case enuObjectType.Zone: + for (byte i = 0; i < MSG.ZoneStatusCount(); i++) + { + HAC.Zones[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + LogZoneStatus(MSG.ObjectNumber(i)); + + switch (HAC.Zones[MSG.ObjectNumber(i)].ZoneType) + { + case enuZoneType.EntryExit: + case enuZoneType.X2EntryDelay: + case enuZoneType.X4EntryDelay: + case enuZoneType.Perimeter: + WebNotification.Send("contact", Helper.Serialize(Helper.ConvertZone( + MSG.ObjectNumber(i), HAC.Zones[MSG.ObjectNumber(i)]))); + break; + case enuZoneType.AwayInt: + WebNotification.Send("motion", Helper.Serialize(Helper.ConvertZone( + MSG.ObjectNumber(i), HAC.Zones[MSG.ObjectNumber(i)]))); + break; + case enuZoneType.Water: + WebNotification.Send("water", Helper.Serialize(Helper.ConvertZone( + MSG.ObjectNumber(i), HAC.Zones[MSG.ObjectNumber(i)]))); + break; + case enuZoneType.Fire: + WebNotification.Send("smoke", Helper.Serialize(Helper.ConvertZone( + MSG.ObjectNumber(i), HAC.Zones[MSG.ObjectNumber(i)]))); + break; + case enuZoneType.Gas: + WebNotification.Send("co", Helper.Serialize(Helper.ConvertZone( + MSG.ObjectNumber(i), HAC.Zones[MSG.ObjectNumber(i)]))); + break; + } + } + break; + case enuObjectType.Thermostat: + for (byte i = 0; i < MSG.ThermostatStatusCount(); i++) + { + lock (tstat_lock) + { + HAC.Thermostats[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + + if (!tstats.ContainsKey(MSG.ObjectNumber(i))) + tstats.Add(MSG.ObjectNumber(i), DateTime.Now); + else + tstats[MSG.ObjectNumber(i)] = DateTime.Now; + + if (Global.verbose_thermostat_timer) + Event.WriteVerbose("ThermostatTimer", "Unsolicited status received for " + HAC.Thermostats[MSG.ObjectNumber(i)].Name); + + WebNotification.Send("thermostat", Helper.Serialize(Helper.ConvertThermostat( + MSG.ObjectNumber(i), HAC.Thermostats[MSG.ObjectNumber(i)]))); + } + } + break; + case enuObjectType.Unit: + for (byte i = 0; i < MSG.UnitStatusCount(); i++) + { + HAC.Units[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + LogUnitStatus(MSG.ObjectNumber(i)); + + WebNotification.Send("unit", Helper.Serialize(Helper.ConvertUnit( + MSG.ObjectNumber(i), HAC.Units[MSG.ObjectNumber(i)]))); + } + break; + case enuObjectType.Message: + for (byte i = 0; i < MSG.MessageCount(); i++) + { + HAC.Messages[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + LogMessageStatus(MSG.ObjectNumber(i)); + } + break; + default: + if (Global.verbose_unhandled) + { + StringBuilder sb = new StringBuilder(); + foreach (byte b in MSG.ToByteArray()) + sb.Append(b.ToString() + " "); + Event.WriteVerbose("ExtendedStatus", "Unhandled " + MSG.ObjectType.ToString() + " " + sb.ToString()); + } + break; + } + } + #endregion + + #region Thermostats + static double ThermostatTimerInterval() + { + DateTime now = DateTime.Now; + return ((60 - now.Second) * 1000 - now.Millisecond) + new TimeSpan(0, 0, 30).TotalMilliseconds; + } + + private static DateTime RoundToMinute(DateTime dt) + { + return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0); + } + + private void tstat_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + lock (tstat_lock) + { + foreach (KeyValuePair tstat in tstats) + { + // Poll every 4 minutes if no prior update + if (RoundToMinute(tstat.Value).AddMinutes(4) <= RoundToMinute(DateTime.Now)) + { + HAC.Connection.Send(new clsOL2MsgRequestExtendedStatus(HAC.Connection, enuObjectType.Thermostat, tstat.Key, tstat.Key), HandleRequestThermostatStatus); + + if(Global.verbose_thermostat_timer) + Event.WriteVerbose("ThermostatTimer", "Polling status for " + HAC.Thermostats[tstat.Key].Name); + } + + // Log every minute if update within 5 minutes and connected + if (RoundToMinute(tstat.Value).AddMinutes(5) > RoundToMinute(DateTime.Now) && + (HAC.Connection.ConnectionState == enuOmniLinkConnectionState.Online || + HAC.Connection.ConnectionState == enuOmniLinkConnectionState.OnlineSecure)) + { + if (HAC.Thermostats[tstat.Key].Temp > 0) + LogThermostatStatus(tstat.Key); + else if (Global.verbose_thermostat_timer) + Event.WriteWarn("ThermostatTimer", "Not logging unknown temp for " + HAC.Thermostats[tstat.Key].Name); + } + else if (Global.verbose_thermostat_timer) + Event.WriteWarn("ThermostatTimer", "Not logging out of date status for " + HAC.Thermostats[tstat.Key].Name); + } + } + + tstat_timer.Interval = ThermostatTimerInterval(); + tstat_timer.Start(); + } + + private void HandleRequestThermostatStatus(clsOmniLinkMessageQueueItem M, byte[] B, bool Timeout) + { + if (Timeout) + return; + + clsOL2MsgExtendedStatus MSG = new clsOL2MsgExtendedStatus(HAC.Connection, B); + + for (byte i = 0; i < MSG.ThermostatStatusCount(); i++) + { + lock (tstat_lock) + { + HAC.Thermostats[MSG.ObjectNumber(i)].CopyExtendedStatus(MSG, i); + + if (!tstats.ContainsKey(MSG.ObjectNumber(i))) + tstats.Add(MSG.ObjectNumber(i), DateTime.Now); + else + tstats[MSG.ObjectNumber(i)] = DateTime.Now; + + if (Global.verbose_thermostat_timer) + Event.WriteVerbose("ThermostatTimer", "Polling status received for " + HAC.Thermostats[MSG.ObjectNumber(i)].Name); + } + } + } + #endregion + + #region Time Sync + static double TimeTimerInterval() + { + DateTime now = DateTime.Now; + return ((60 - now.Second) * 1000 - now.Millisecond); + } + + private void tsync_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + if (tsync_check.AddMinutes(Global.hai_time_interval) < DateTime.Now) + HAC.Connection.Send(new clsOL2MsgRequestSystemStatus(HAC.Connection), HandleRequestSystemStatus); + + tsync_timer.Interval = TimeTimerInterval(); + tsync_timer.Start(); + } + + private void HandleRequestSystemStatus(clsOmniLinkMessageQueueItem M, byte[] B, bool Timeout) + { + if (Timeout) + return; + + tsync_check = DateTime.Now; + + clsOL2MsgSystemStatus MSG = new clsOL2MsgSystemStatus(HAC.Connection, B); + + DateTime time; + try + { + // The controller uses 2 digit years and C# uses 4 digit years + // Extract the 2 digit prefix to use when parsing the time + int year = DateTime.Now.Year / 100; + + time = new DateTime((int)MSG.Year + (year * 100), (int)MSG.Month, (int)MSG.Day, (int)MSG.Hour, (int)MSG.Minute, (int)MSG.Second); + } + catch + { + Event.WriteWarn("TimeSyncTimer", "Controller time could not be parsed", true); + + DateTime now = DateTime.Now; + HAC.Connection.Send(new clsOL2MsgSetTime(HAC.Connection, (byte)(now.Year % 100), (byte)now.Month, (byte)now.Day, (byte)now.DayOfWeek, + (byte)now.Hour, (byte)now.Minute, (byte)(now.IsDaylightSavingTime() ? 1 : 0)), HandleSetTime); + + return; + } + + double adj = (DateTime.Now - time).Duration().TotalSeconds; + + if (adj > Global.hai_time_drift) + { + Event.WriteWarn("TimeSyncTimer", "Controller time " + time.ToString("MM/dd/yyyy HH:mm:ss") + " out of sync by " + adj + " seconds", true); + + DateTime now = DateTime.Now; + HAC.Connection.Send(new clsOL2MsgSetTime(HAC.Connection, (byte)(now.Year % 100), (byte)now.Month, (byte)now.Day, (byte)now.DayOfWeek, + (byte)now.Hour, (byte)now.Minute, (byte)(now.IsDaylightSavingTime() ? 1 : 0)), HandleSetTime); + } + } + + private void HandleSetTime(clsOmniLinkMessageQueueItem M, byte[] B, bool Timeout) + { + if (Timeout) + return; + + Event.WriteVerbose("TimeSyncTimer", "Controller time has been successfully set"); + } + #endregion + + #region Logging + private void LogEventStatus(enuEventType type, string value, bool alert) + { + DBQueue(@" + INSERT INTO log_events (timestamp, name, status) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + type.ToString() + "','" + value + "')"); + + if (alert) + { + Event.WriteWarn("SystemEvent", type.ToString() + " " + value); + Prowl.Notify("SystemEvent", type.ToString() + " " + value); + } + + if (Global.verbose_event) + Event.WriteVerbose("SystemEvent", type.ToString() + " " + value); + } + + private void LogAreaStatus(ushort id) + { + clsArea unit = HAC.Areas[id]; + + // Alarm notifcation + if (unit.AreaFireAlarmText != "OK") + { + Event.WriteAlarm("AreaStatus", "FIRE " + unit.Name + " " + unit.AreaFireAlarmText); + Prowl.Notify("ALARM", "FIRE " + unit.Name + " " + unit.AreaFireAlarmText, ProwlPriority.Emergency); + + if(!alarms.Contains("FIRE" + id)) + alarms.Add("FIRE" + id); + } + else if(alarms.Contains("FIRE" + id)) + { + Event.WriteAlarm("AreaStatus", "CLEARED - FIRE " + unit.Name + " " + unit.AreaFireAlarmText); + Prowl.Notify("ALARM CLEARED", "FIRE " + unit.Name + " " + unit.AreaFireAlarmText, ProwlPriority.High); + + alarms.Remove("FIRE" + id); + } + + if (unit.AreaBurglaryAlarmText != "OK") + { + Event.WriteAlarm("AreaStatus", "BURGLARY " + unit.Name + " " + unit.AreaBurglaryAlarmText); + Prowl.Notify("ALARM", "BURGLARY " + unit.Name + " " + unit.AreaBurglaryAlarmText, ProwlPriority.Emergency); + + if (!alarms.Contains("BURGLARY" + id)) + alarms.Add("BURGLARY" + id); + } + else if (alarms.Contains("BURGLARY" + id)) + { + Event.WriteAlarm("AreaStatus", "CLEARED - BURGLARY " + unit.Name + " " + unit.AreaBurglaryAlarmText); + Prowl.Notify("ALARM CLEARED", "BURGLARY " + unit.Name + " " + unit.AreaBurglaryAlarmText, ProwlPriority.High); + + alarms.Remove("BURGLARY" + id); + } + + if (unit.AreaAuxAlarmText != "OK") + { + Event.WriteAlarm("AreaStatus", "AUX " + unit.Name + " " + unit.AreaAuxAlarmText); + Prowl.Notify("ALARM", "AUX " + unit.Name + " " + unit.AreaAuxAlarmText, ProwlPriority.Emergency); + + if (!alarms.Contains("AUX" + id)) + alarms.Add("AUX" + id); + } + else if (alarms.Contains("AUX" + id)) + { + Event.WriteAlarm("AreaStatus", "CLEARED - AUX " + unit.Name + " " + unit.AreaAuxAlarmText); + Prowl.Notify("ALARM CLEARED", "AUX " + unit.Name + " " + unit.AreaAuxAlarmText, ProwlPriority.High); + + alarms.Remove("AUX" + id); + } + + if (unit.AreaDuressAlarmText != "OK") + { + Event.WriteAlarm("AreaStatus", "DURESS " + unit.Name + " " + unit.AreaDuressAlarmText); + Prowl.Notify("ALARM", "DURESS " + unit.Name + " " + unit.AreaDuressAlarmText, ProwlPriority.Emergency); + + if (!alarms.Contains("DURESS" + id)) + alarms.Add("DURESS" + id); + } + else if (alarms.Contains("DURESS" + id)) + { + Event.WriteAlarm("AreaStatus", "CLEARED - DURESS " + unit.Name + " " + unit.AreaDuressAlarmText); + Prowl.Notify("ALARM CLEARED", "DURESS " + unit.Name + " " + unit.AreaDuressAlarmText, ProwlPriority.High); + + alarms.Remove("DURESS" + id); + } + + string status = unit.ModeText(); + + if (unit.ExitTimer > 0) + status = "ARMING " + status; + + if (unit.EntryTimer > 0) + status = "TRIPPED " + status; + + DBQueue(@" + INSERT INTO log_areas (timestamp, id, name, + fire, police, auxiliary, + duress, security) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + id.ToString() + "','" + unit.Name + "','" + + unit.AreaFireAlarmText + "','" + unit.AreaBurglaryAlarmText + "','" + unit.AreaAuxAlarmText + "','" + + unit.AreaDuressAlarmText + "','" + status + "')"); + + if(Global.verbose_area) + Event.WriteVerbose("AreaStatus", id + " " + unit.Name + ", Status: " + status); + + if(unit.LastMode != unit.AreaMode) + Prowl.Notify("Security", unit.Name + " " + unit.ModeText()); + } + + private void LogZoneStatus(ushort id) + { + clsZone unit = HAC.Zones[id]; + + DBQueue(@" + INSERT INTO log_zones (timestamp, id, name, status) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + id.ToString() + "','" + unit.Name + "','" + unit.StatusText() + "')"); + + if(Global.verbose_zone) + Event.WriteVerbose("ZoneStatus", id + " " + unit.Name + ", Status: " + unit.StatusText()); + } + + private void LogThermostatStatus(ushort id) + { + clsThermostat unit = HAC.Thermostats[id]; + + int temp, heat, cool, humidity, humidify, dehumidify; + + Int32.TryParse(unit.TempText(), out temp); + Int32.TryParse(unit.HeatSetpointText(), out heat); + Int32.TryParse(unit.CoolSetpointText(), out cool); + Int32.TryParse(unit.HumidityText(), out humidity); + Int32.TryParse(unit.HumidifySetpointText(), out humidify); + Int32.TryParse(unit.DehumidifySetpointText(), out dehumidify); + + DBQueue(@" + INSERT INTO log_thermostats (timestamp, id, name, + status, temp, heat, cool, + humidity, humidify, dehumidify, + mode, fan, hold) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "','" + id.ToString() + "','" + unit.Name + "','" + + unit.HorC_StatusText() + "','" + temp.ToString() + "','" + heat + "','" + cool + "','" + + humidity + "','" + humidify + "','" + dehumidify + "','" + + unit.ModeText() + "','" + unit.FanModeText() + "','" + unit.HoldStatusText() + "')"); + + if(Global.verbose_thermostat) + Event.WriteVerbose("ThermostatStatus", id + " " + unit.Name + + ", Status: " + unit.TempText() + " " + unit.HorC_StatusText() + + ", Heat: " + unit.HeatSetpointText() + + ", Cool: " + unit.CoolSetpointText() + + ", Mode: " + unit.ModeText() + + ", Fan: " + unit.FanModeText() + + ", Hold: " + unit.HoldStatusText()); + } + + private void LogUnitStatus(ushort id) + { + clsUnit unit = HAC.Units[id]; + + string status = unit.StatusText; + + if (unit.Status == 100 && unit.StatusTime == 0) + status = "OFF"; + else if (unit.Status == 200 && unit.StatusTime == 0) + status = "ON"; + + DBQueue(@" + INSERT INTO log_units (timestamp, id, name, + status, statusvalue, statustime) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + id.ToString() + "','" + unit.Name + "','" + + status + "','" + unit.Status + "','" + unit.StatusTime + "')"); + + if(Global.verbose_unit) + Event.WriteVerbose("UnitStatus", id + " " + unit.Name + ", Status: " + status); + } + + private void LogMessageStatus(ushort id) + { + clsMessage unit = HAC.Messages[id]; + + DBQueue(@" + INSERT INTO log_messages (timestamp, id, name, status) + VALUES ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + id.ToString() + "','" + unit.Name + "','" + unit.StatusText() + "')"); + + if(Global.verbose_message) + Event.WriteVerbose("MessageStatus", unit.Name + ", " + unit.StatusText()); + + if(Global.prowl_messages) + Prowl.Notify("Message", id + " " + unit.Name + ", " + unit.StatusText()); + } + + #endregion + + #region Database + public bool DBOpen() + { + try + { + if (mysql_conn.State != ConnectionState.Open) + mysql_conn.Open(); + + mysql_retry = DateTime.MinValue; + } + catch (Exception ex) + { + Event.WriteError("DatabaseLogger", "Failed to connect to database\r\n" + ex.Message); + mysql_retry = DateTime.Now.AddMinutes(1); + return false; + } + + return true; + } + + public void DBClose() + { + if(mysql_conn.State != ConnectionState.Closed) + mysql_conn.Close(); + } + + public void DBQueue(string query) + { + if (!Global.mysql_logging) + return; + + lock(mysql_lock) + mysql_queue.Enqueue(query); + } + + private int DBQueueCount() + { + int count; + lock (mysql_lock) + count = mysql_queue.Count; + + return count; + } + #endregion + } +} diff --git a/HAILogger/Event.cs b/HAILogger/Event.cs new file mode 100644 index 0000000..ce09c39 --- /dev/null +++ b/HAILogger/Event.cs @@ -0,0 +1,165 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Net.Mail; + +namespace HAILogger +{ + static class Event + { + public static void WriteVerbose(string value) + { + Trace.WriteLine(value); + LogFile(TraceLevel.Verbose, "VERBOSE", value); + } + + public static void WriteVerbose(string source, string value) + { + Trace.WriteLine("VERBOSE: " + source + ": " + value); + LogFile(TraceLevel.Verbose, "VERBOSE: " + source, value); + } + + public static void WriteInfo(string source, string value, bool alert) + { + WriteInfo(source, value); + if (alert) + { + LogEvent(EventLogEntryType.Information, source, value); + SendMail("Info", source, value); + } + } + + public static void WriteInfo(string source, string value) + { + Trace.WriteLine("INFO: " + source + ": " + value); + LogFile(TraceLevel.Info, "INFO: " + source, value); + } + + public static void WriteWarn(string source, string value, bool alert) + { + WriteWarn(source, value); + if (alert) + SendMail("Warn", source, value); + } + + public static void WriteWarn(string source, string value) + { + Trace.WriteLine("WARN: " + source + ": " + value); + LogFile(TraceLevel.Warning, "WARN: " + source, value); + LogEvent(EventLogEntryType.Warning, source, value); + } + + public static void WriteError(string source, string value) + { + Trace.WriteLine("ERROR: " + source + ": " + value); + LogFile(TraceLevel.Error, "ERROR: " + source, value); + LogEvent(EventLogEntryType.Error, source, value); + SendMail("Error", source, value); + } + + public static void WriteAlarm(string source, string value) + { + Trace.WriteLine("ALARM: " + source + ": " + value); + LogFile(TraceLevel.Error, "ALARM: " + source, value); + LogEvent(EventLogEntryType.Warning, source, value); + + if (Global.mail_alarm_to != null && Global.mail_alarm_to.Length > 0) + { + MailMessage mail = new MailMessage(); + mail.From = Global.mail_from; + foreach (MailAddress address in Global.mail_alarm_to) + mail.To.Add(address); + mail.Priority = MailPriority.High; + mail.Subject = value; + mail.Body = value; + + SmtpClient smtp = new SmtpClient(Global.mail_server, Global.mail_port); + + if (!string.IsNullOrEmpty(Global.mail_username)) + { + smtp.UseDefaultCredentials = false; + smtp.Credentials = new NetworkCredential(Global.mail_username, Global.mail_password); + } + + try + { + smtp.Send(mail); + } + catch (Exception ex) + { + string error = "An error occurred sending email notification\r\n" + ex.Message; + LogFile(TraceLevel.Error, "ERROR: " + source, error); + LogEvent(EventLogEntryType.Error, "EventNotification", error); + } + } + } + + private static void SendMail(string level, string source, string value) + { + if (Global.mail_to == null || Global.mail_to.Length == 0) + return; + + MailMessage mail = new MailMessage(); + mail.From = Global.mail_from; + foreach (MailAddress address in Global.mail_to) + mail.To.Add(address); + mail.Subject = Global.event_source + " - " + level; + mail.Body = source + ": " + value; + + SmtpClient smtp = new SmtpClient(Global.mail_server, Global.mail_port); + + if (!string.IsNullOrEmpty(Global.mail_username)) + { + smtp.UseDefaultCredentials = false; + smtp.Credentials = new NetworkCredential(Global.mail_username, Global.mail_password); + } + + try + { + smtp.Send(mail); + } + catch (Exception ex) + { + string error = "An error occurred sending email notification\r\n" + ex.Message; + LogFile(TraceLevel.Error, "ERROR: " + source, error); + LogEvent(EventLogEntryType.Error, "EventNotification", error); + } + } + + private static void LogEvent(EventLogEntryType type, string source, string value) + { + string event_log = "Application"; + + if (!EventLog.SourceExists(Global.event_source)) + EventLog.CreateEventSource(Global.event_source, event_log); + + string event_msg = source + ": " + value; + + EventLog.WriteEntry(Global.event_source, event_msg, type, 234); + } + + private static void LogFile(TraceLevel level, string source, string value) + { + TraceSwitch tswitch = new TraceSwitch("TraceLevelSwitch", "Trace Level for Entire Application"); + + if (tswitch.Level < level) + return; + + try + { + FileStream fs = new FileStream(Global.dir_config + "\\" + Global.event_log, FileMode.Append, FileAccess.Write); + StreamWriter sw = new StreamWriter(fs); + + sw.WriteLine(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss ") + source + ": " + value); + + sw.Close(); + fs.Close(); + } + catch + { + LogEvent(EventLogEntryType.Error, "EventLogger", "Unable to write to the file log."); + } + } + } +} diff --git a/HAILogger/Global.cs b/HAILogger/Global.cs new file mode 100644 index 0000000..266d693 --- /dev/null +++ b/HAILogger/Global.cs @@ -0,0 +1,54 @@ +using System.Net.Mail; + +namespace HAILogger +{ + public abstract class Global + { + // Events Preset + public static string event_log; + public static string event_source; + + // Directories + public static string dir_config; + + // HAI Controller + public static string hai_address; + public static int hai_port; + public static string hai_key1; + public static string hai_key2; + public static bool hai_time_sync; + public static int hai_time_interval; + public static int hai_time_drift; + + // mySQL Database + public static bool mysql_logging; + public static string mysql_connection; + + // Events + public static string mail_server; + public static int mail_port; + public static string mail_username; + public static string mail_password; + public static MailAddress mail_from; + public static MailAddress[] mail_to; + public static MailAddress[] mail_alarm_to; + + // Prowl Notifications + public static string[] prowl_key; + public static bool prowl_messages; + + // Web Service + public static bool webapi_enabled; + public static int webapi_port; + + // Verbose Output + public static bool verbose_unhandled; + public static bool verbose_event; + public static bool verbose_area; + public static bool verbose_zone; + public static bool verbose_thermostat_timer; + public static bool verbose_thermostat; + public static bool verbose_unit; + public static bool verbose_message; + } +} diff --git a/HAILogger/HAI.Controller.dll b/HAILogger/HAI.Controller.dll new file mode 100644 index 0000000000000000000000000000000000000000..0c6700c3daf695ddba93ebc8c6ae95852a249349 GIT binary patch literal 1138320 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

fID@o))oxl{)=uvI7)P`w13d!FYe3Z2nJ3e!0 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%0DrITO&#?5> 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 + + + Debug + x86 + 8.0.30703 + 2.0 + {0A636707-98BA-45AB-9843-AED430933CEE} + Exe + Properties + HAILogger + HAILogger + v4.0 + 512 + + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + .\HAI.Controller.dll + + + + + + + + + + + + + + + + + + + + + + Component + + + ProjectInstaller.cs + + + + + Component + + + Service.cs + + + + + + + + + + + + + + Designer + + + Always + + + + + ProjectInstaller.cs + + + Service.cs + + + + + \ No newline at end of file diff --git a/HAILogger/HAILogger.ini b/HAILogger/HAILogger.ini new file mode 100644 index 0000000..7677909 --- /dev/null +++ b/HAILogger/HAILogger.ini @@ -0,0 +1,55 @@ +# HAI Controller +hai_address = +hai_port = 4369 +hai_key1 = 00-00-00-00-00-00-00-00 +hai_key2 = 00-00-00-00-00-00-00-00 + +# HAI Controller Time Sync (yes/no) +# hai_time_check is interval in minutes to check controller time +# hai_time_adj is the drift in seconds to allow before an adjustment is made +hai_time_sync = yes +hai_time_interval = 60 +hai_time_drift = 10 + +# mySQL Database Logging (yes/no) +mysql_logging = no +mysql_server = +mysql_database = +mysql_user = +mysql_password = + +# Event Notifications +# mail_username and mail_password optional for authenticated mail +# mail_to sent for service notifications +# mail_alarm_to sent for FIRE, BURGLARY, AUX, DURESS +mail_server = +mail_port = 25 +mail_username = +mail_password = +mail_from = +#mail_to = +#mail_to = +#mail_alarm_to = +#mail_alarm_to = + +# Prowl Notifications +# Register for API key at http://www.prowlapp.com +# Sent for FIRE, BURGLARY, AUX, DURESS +# prowl_messages (yes/no) for console message notifications +#prowl_key = +#prowl_key = +prowl_messages = no + +# Web service +# Used for integration with Samsung SmartThings +webapi_enabled = yes +webapi_port = 8000 + +# Verbose Output (yes/no) +verbose_unhandled = yes +verbose_area = yes +verbose_zone = yes +verbose_thermostat_timer = yes +verbose_thermostat = yes +verbose_unit = yes +verbose_message = yes \ No newline at end of file diff --git a/HAILogger/HAIService.cs b/HAILogger/HAIService.cs new file mode 100644 index 0000000..130f2b0 --- /dev/null +++ b/HAILogger/HAIService.cs @@ -0,0 +1,275 @@ +using HAI_Shared; +using System; +using System.Collections.Generic; +using System.ServiceModel; +using System.ServiceModel.Web; + +namespace HAILogger +{ + [ServiceBehavior(IncludeExceptionDetailInFaults = true)] + public class HAIService : IHAIService + { + public void Subscribe(SubscribeContract contract) + { + Event.WriteVerbose("WebService", "Subscribe"); + WebNotification.AddSubscription(contract.callback); + } + + public List ListAreas() + { + Event.WriteVerbose("WebService", "ListAreas"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Areas.Count; i++) + { + clsArea area = WebService.HAC.Areas[i]; + + if (area.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = area.Name }); + } + return names; + } + + public AreaContract GetArea(ushort id) + { + Event.WriteVerbose("WebService", "GetArea: " + id); + + WebOperationContext ctx = WebOperationContext.Current; + ctx.OutgoingResponse.Headers.Add("type", "area"); + + clsArea area = WebService.HAC.Areas[id]; + return Helper.ConvertArea(id, area); + } + + public List ListZonesContact() + { + Event.WriteVerbose("WebService", "ListZonesContact"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Zones.Count; i++) + { + clsZone zone = WebService.HAC.Zones[i]; + + if ((zone.ZoneType == enuZoneType.EntryExit || + zone.ZoneType == enuZoneType.X2EntryDelay || + zone.ZoneType == enuZoneType.X4EntryDelay || + zone.ZoneType == enuZoneType.Perimeter) && zone.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = zone.Name }); + } + return names; + } + + public List ListZonesMotion() + { + Event.WriteVerbose("WebService", "ListZonesMotion"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Zones.Count; i++) + { + clsZone zone = WebService.HAC.Zones[i]; + + if (zone.ZoneType == enuZoneType.AwayInt && zone.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = zone.Name }); + } + return names; + } + + public List ListZonesWater() + { + Event.WriteVerbose("WebService", "ListZonesWater"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Zones.Count; i++) + { + clsZone zone = WebService.HAC.Zones[i]; + + if (zone.ZoneType == enuZoneType.Water && zone.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = zone.Name }); + } + return names; + } + + public List ListZonesSmoke() + { + Event.WriteVerbose("WebService", "ListZonesSmoke"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Zones.Count; i++) + { + clsZone zone = WebService.HAC.Zones[i]; + + if (zone.ZoneType == enuZoneType.Fire && zone.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = zone.Name }); + } + return names; + } + + public List ListZonesCO() + { + Event.WriteVerbose("WebService", "ListZonesCO"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Zones.Count; i++) + { + clsZone zone = WebService.HAC.Zones[i]; + + if (zone.ZoneType == enuZoneType.Gas && zone.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = zone.Name }); + } + return names; + } + + public ZoneContract GetZone(ushort id) + { + Event.WriteVerbose("WebService", "GetZone: " + id); + + WebOperationContext ctx = WebOperationContext.Current; + + switch (WebService.HAC.Zones[id].ZoneType) + { + case enuZoneType.EntryExit: + case enuZoneType.X2EntryDelay: + case enuZoneType.X4EntryDelay: + case enuZoneType.Perimeter: + ctx.OutgoingResponse.Headers.Add("type", "contact"); + break; + case enuZoneType.AwayInt: + ctx.OutgoingResponse.Headers.Add("type", "motion"); + break; + case enuZoneType.Water: + ctx.OutgoingResponse.Headers.Add("type", "water"); + break; + case enuZoneType.Fire: + ctx.OutgoingResponse.Headers.Add("type", "smoke"); + break; + case enuZoneType.Gas: + ctx.OutgoingResponse.Headers.Add("type", "co"); + break; + default: + ctx.OutgoingResponse.Headers.Add("type", "unknown"); + break; + } + + clsZone unit = WebService.HAC.Zones[id]; + return Helper.ConvertZone(id, unit); + } + + public List ListUnits() + { + Event.WriteVerbose("WebService", "ListUnits"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Units.Count; i++) + { + clsUnit unit = WebService.HAC.Units[i]; + + if (unit.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = unit.Name }); + } + return names; + } + + public UnitContract GetUnit(ushort id) + { + Event.WriteVerbose("WebService", "GetUnit: " + id); + + WebOperationContext ctx = WebOperationContext.Current; + ctx.OutgoingResponse.Headers.Add("type", "unit"); + + clsUnit unit = WebService.HAC.Units[id]; + return Helper.ConvertUnit(id, unit); + } + + public void SetUnit(CommandContract unit) + { + Event.WriteVerbose("WebService", "SetUnit: " + unit.id + " to " + unit.value + "%"); + + if (unit.value == 0) + WebService.HAC.SendCommand(enuUnitCommand.Off, 0, unit.id); + else if (unit.value == 100) + WebService.HAC.SendCommand(enuUnitCommand.On, 0, unit.id); + else + WebService.HAC.SendCommand(enuUnitCommand.Level, BitConverter.GetBytes(unit.value)[0], unit.id); + } + + + public void SetUnitKeypadPress(CommandContract unit) + { + Event.WriteVerbose("WebService", "SetUnitKeypadPress: " + unit.id + " to " + unit.value + " button"); + WebService.HAC.SendCommand(enuUnitCommand.LutronHomeWorksKeypadButtonPress, BitConverter.GetBytes(unit.value)[0], unit.id); + } + + public List ListThermostats() + { + Event.WriteVerbose("WebService", "ListThermostats"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Thermostats.Count; i++) + { + clsThermostat unit = WebService.HAC.Thermostats[i]; + + if (unit.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = unit.Name }); + } + return names; + } + + public ThermostatContract GetThermostat(ushort id) + { + Event.WriteVerbose("WebService", "GetThermostat: " + id); + + WebOperationContext ctx = WebOperationContext.Current; + ctx.OutgoingResponse.Headers.Add("type", "thermostat"); + + clsThermostat unit = WebService.HAC.Thermostats[id]; + return Helper.ConvertThermostat(id, unit); + } + + public void SetThermostatCoolSetpoint(CommandContract unit) + { + int temp = Helper.ConvertTemperature(unit.value); + Event.WriteVerbose("WebService", "SetThermostatCoolSetpoint: " + unit.id + " to " + unit.value + "F (" + temp + ")"); + WebService.HAC.SendCommand(enuUnitCommand.SetHighSetPt, BitConverter.GetBytes(temp)[0], unit.id); + } + + public void SetThermostatHeatSetpoint(CommandContract unit) + { + int temp = Helper.ConvertTemperature(unit.value); + Event.WriteVerbose("WebService", "SetThermostatCoolSetpoint: " + unit.id + " to " + unit.value + "F (" + temp + ")"); + WebService.HAC.SendCommand(enuUnitCommand.SetLowSetPt, BitConverter.GetBytes(temp)[0], unit.id); + } + + public void SetThermostatMode(CommandContract unit) + { + Event.WriteVerbose("WebService", "SetThermostatMode: " + unit.id + " to " + unit.value); + WebService.HAC.SendCommand(enuUnitCommand.Mode, BitConverter.GetBytes(unit.value)[0], unit.id); + } + + public void SetThermostatFanMode(CommandContract unit) + { + Event.WriteVerbose("WebService", "SetThermostatFanMode: " + unit.id + " to " + unit.value); + WebService.HAC.SendCommand(enuUnitCommand.Fan, BitConverter.GetBytes(unit.value)[0], unit.id); + } + + public List ListButtons() + { + Event.WriteVerbose("WebService", "ListButtons"); + + List names = new List(); + for (ushort i = 1; i < WebService.HAC.Buttons.Count; i++) + { + clsButton unit = WebService.HAC.Buttons[i]; + + if (unit.DefaultProperties == false) + names.Add(new NameContract() { id = i, name = unit.Name }); + } + return names; + } + + public void PushButton(CommandContract unit) + { + Event.WriteVerbose("WebService", "PushButton: " + unit.id); + WebService.HAC.SendCommand(enuUnitCommand.Button, 0, unit.id); + } + } +} \ No newline at end of file diff --git a/HAILogger/Helper.cs b/HAILogger/Helper.cs new file mode 100644 index 0000000..5da7f7f --- /dev/null +++ b/HAILogger/Helper.cs @@ -0,0 +1,107 @@ +using HAI_Shared; +using System; +using System.IO; +using System.Runtime.Serialization.Json; +using System.Text; + +namespace HAILogger +{ + static class Helper + { + public static AreaContract ConvertArea(ushort id, clsArea area) + { + AreaContract ret = new AreaContract(); + + ret.id = id; + ret.name = area.Name; + ret.burglary = area.AreaBurglaryAlarmText; + ret.co = area.AreaGasAlarmText; + ret.fire = area.AreaFireAlarmText; + ret.water = area.AreaWaterAlarmText; + + string mode = area.ModeText(); + + if (mode.Contains("OFF")) + ret.mode = "OFF"; + else if (mode.Contains("DAY")) + ret.mode = "DAY"; + else if (mode.Contains("NIGHT")) + ret.mode = "NIGHT"; + else if (mode.Contains("AWAY")) + ret.mode = "AWAY"; + else if (mode.Contains("VACATION")) + ret.mode = "VACATION"; + + return ret; + } + + public static ZoneContract ConvertZone(ushort id, clsZone zone) + { + ZoneContract ret = new ZoneContract(); + + ret.id = id; + ret.name = zone.Name; + ret.status = zone.StatusText(); + + return ret; + } + + public static UnitContract ConvertUnit(ushort id, clsUnit unit) + { + UnitContract ret = new UnitContract(); + + ret.id = id; + ret.name = unit.Name; + + if (unit.Status > 100) + ret.level = (ushort)(unit.Status - 100); + else if (unit.Status == 1) + ret.level = 100; + else + ret.level = 0; + + return ret; + } + + public static ThermostatContract ConvertThermostat(ushort id, clsThermostat unit) + { + ThermostatContract ret = new ThermostatContract(); + + ret.id = id; + ret.name = unit.Name; + + ushort temp, heat, cool, humidity; + + ushort.TryParse(unit.TempText(), out temp); + ushort.TryParse(unit.HeatSetpointText(), out heat); + ushort.TryParse(unit.CoolSetpointText(), out cool); + ushort.TryParse(unit.HumidityText(), out humidity); + + ret.temp = temp; + ret.humidity = humidity; + ret.heatsetpoint = heat; + ret.coolsetpoint = cool; + ret.mode = unit.Mode; + ret.fanmode = unit.FanMode; + + return ret; + } + + public static int ConvertTemperature(int f) + { + // Convert to celsius + double c = 5.0 / 9.0 * (f - 32); + + // Convert to omni temp (0 is -40C and 255 is 87.5C) + return (int)Math.Round((c + 40) * 2, 0); + } + + public static string Serialize(T obj) + { + MemoryStream stream = new MemoryStream(); + DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); + ser.WriteObject(stream, obj); + return Encoding.UTF8.GetString(stream.ToArray()); + } + } +} diff --git a/HAILogger/IHAIService.cs b/HAILogger/IHAIService.cs new file mode 100644 index 0000000..8795cf8 --- /dev/null +++ b/HAILogger/IHAIService.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.ServiceModel; +using System.ServiceModel.Web; + +namespace HAILogger +{ + [ServiceContract] + public interface IHAIService + { + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void Subscribe(SubscribeContract contract); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListAreas(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + AreaContract GetArea(ushort id); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListZonesContact(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListZonesMotion(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListZonesWater(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListZonesSmoke(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListZonesCO(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + ZoneContract GetZone(ushort id); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListUnits(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + UnitContract GetUnit(ushort id); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetUnit(CommandContract unit); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetUnitKeypadPress(CommandContract unit); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListThermostats(); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + ThermostatContract GetThermostat(ushort id); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetThermostatCoolSetpoint(CommandContract unit); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetThermostatHeatSetpoint(CommandContract unit); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetThermostatMode(CommandContract unit); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void SetThermostatFanMode(CommandContract unit); + + [OperationContract] + [WebGet(ResponseFormat = WebMessageFormat.Json)] + List ListButtons(); + + [OperationContract] + [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] + void PushButton(CommandContract unit); + } +} diff --git a/HAILogger/NameContract.cs b/HAILogger/NameContract.cs new file mode 100644 index 0000000..654f0f0 --- /dev/null +++ b/HAILogger/NameContract.cs @@ -0,0 +1,14 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class NameContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public string name { get; set; } + } +} diff --git a/HAILogger/Program.cs b/HAILogger/Program.cs new file mode 100644 index 0000000..b9fbd6f --- /dev/null +++ b/HAILogger/Program.cs @@ -0,0 +1,54 @@ +using System; +using System.Diagnostics; +using System.ServiceProcess; + +namespace HAILogger +{ + class Program + { + static CoreServer server; + + static void Main(string[] args) + { + for (int i = 0; i < args.Length; i++) + { + switch (args[i]) + { + case "-c": + Global.dir_config = args[++i]; + break; + } + } + + if (Environment.UserInteractive) + { + Console.TreatControlCAsInput = false; + Console.CancelKeyPress += new ConsoleCancelEventHandler(myHandler); + + Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); + + server = new CoreServer(); + } + else + { + ServiceBase[] ServicesToRun; + + // More than one user Service may run within the same process. To add + // another service to this process, change the following line to + // create a second service object. For example, + // + // ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()}; + // + ServicesToRun = new ServiceBase[] { new Service() }; + + ServiceBase.Run(ServicesToRun); + } + } + + protected static void myHandler(object sender, ConsoleCancelEventArgs args) + { + server.Shutdown(); + args.Cancel = true; + } + } +} diff --git a/HAILogger/ProjectInstaller.Designer.cs b/HAILogger/ProjectInstaller.Designer.cs new file mode 100644 index 0000000..3d05edb --- /dev/null +++ b/HAILogger/ProjectInstaller.Designer.cs @@ -0,0 +1,56 @@ +namespace HAILogger +{ + partial class ProjectInstaller + { + ///

+ /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.serviceProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller(); + this.serviceInstaller = new System.ServiceProcess.ServiceInstaller(); + // + // serviceProcessInstaller + // + this.serviceProcessInstaller.Password = null; + this.serviceProcessInstaller.Username = null; + // + // serviceInstaller + // + this.serviceInstaller.ServiceName = "HAILogger"; + // + // ProjectInstaller + // + this.Installers.AddRange(new System.Configuration.Install.Installer[] { + this.serviceProcessInstaller, + this.serviceInstaller}); + + } + + #endregion + + private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller; + private System.ServiceProcess.ServiceInstaller serviceInstaller; + } +} \ No newline at end of file diff --git a/HAILogger/ProjectInstaller.cs b/HAILogger/ProjectInstaller.cs new file mode 100644 index 0000000..e950e2b --- /dev/null +++ b/HAILogger/ProjectInstaller.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration.Install; + +namespace HAILogger +{ + [RunInstaller(true)] + public partial class ProjectInstaller : System.Configuration.Install.Installer + { + public ProjectInstaller() + { + InitializeComponent(); + } + } +} diff --git a/HAILogger/ProjectInstaller.resx b/HAILogger/ProjectInstaller.resx new file mode 100644 index 0000000..119855b --- /dev/null +++ b/HAILogger/ProjectInstaller.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 196, 17 + + + False + + \ No newline at end of file diff --git a/HAILogger/Properties/AssemblyInfo.cs b/HAILogger/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fb4e7c2 --- /dev/null +++ b/HAILogger/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HAILogger")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Excalibur Partners, LLC")] +[assembly: AssemblyProduct("HAILogger")] +[assembly: AssemblyCopyright("Copyright © Excalibur Partners, LLC 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("469a23b2-7f66-4a98-a3a0-fb539ae08bf8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.5.0")] +[assembly: AssemblyFileVersion("1.0.5.0")] diff --git a/HAILogger/Prowl.cs b/HAILogger/Prowl.cs new file mode 100644 index 0000000..8fb1b5e --- /dev/null +++ b/HAILogger/Prowl.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Net; + +namespace HAILogger +{ + public enum ProwlPriority + { + VeryLow = -2, + Moderate = -1, + Normal = 0, + High = 1, + Emergency = 2, + }; + + static class Prowl + { + public static void Notify(string source, string description) + { + Notify(source, description, ProwlPriority.Normal); + } + + public static void Notify(string source, string description, ProwlPriority priority) + { + Uri URI = new Uri("https://api.prowlapp.com/publicapi/add"); + + foreach (string key in Global.prowl_key) + { + List parameters = new List(); + + parameters.Add("apikey=" + key); + parameters.Add("priority= " + (int)priority); + parameters.Add("application=" + Global.event_source); + parameters.Add("event=" + source); + parameters.Add("description=" + description); + + WebClient client = new WebClient(); + client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; + client.UploadStringAsync(URI, string.Join("&", parameters.ToArray())); + client.UploadStringCompleted += client_UploadStringCompleted; + } + } + + static void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) + { + if(e.Error != null) + Event.WriteError("ProwlNotification", "An error occurred sending notification\r\n" + e.Error.Message); + } + } +} diff --git a/HAILogger/Service.Designer.cs b/HAILogger/Service.Designer.cs new file mode 100644 index 0000000..ceaf929 --- /dev/null +++ b/HAILogger/Service.Designer.cs @@ -0,0 +1,42 @@ +namespace HAILogger +{ + partial class Service + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + // + // Service + // + this.AutoLog = false; + this.CanShutdown = true; + this.ServiceName = "HAILogger"; + + } + + #endregion + } +} diff --git a/HAILogger/Service.cs b/HAILogger/Service.cs new file mode 100644 index 0000000..2db5a77 --- /dev/null +++ b/HAILogger/Service.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.ServiceProcess; +using System.Text; + +namespace HAILogger +{ + partial class Service : ServiceBase + { + static CoreServer server; + + public Service() + { + InitializeComponent(); + } + + protected override void OnStart(string[] args) + { + server = new CoreServer(); + } + + protected override void OnStop() + { + server.Shutdown(); + } + + protected override void OnShutdown() + { + server.Shutdown(); + } + } +} diff --git a/HAILogger/Service.resx b/HAILogger/Service.resx new file mode 100644 index 0000000..73afb87 --- /dev/null +++ b/HAILogger/Service.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/HAILogger/Settings.cs b/HAILogger/Settings.cs new file mode 100644 index 0000000..1083ac4 --- /dev/null +++ b/HAILogger/Settings.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Specialized; +using System.IO; +using System.Net; +using System.Net.Mail; + +namespace HAILogger +{ + static class Settings + { + public static void LoadSettings() + { + NameValueCollection settings = LoadCollection(Global.dir_config + "\\HAILogger.ini"); + + // HAI Controller + Global.hai_address = settings["hai_address"]; + Global.hai_port = ValidatePort(settings, "hai_port"); + Global.hai_key1 = settings["hai_key1"]; + Global.hai_key2 = settings["hai_key2"]; + Global.hai_time_sync = ValidateYesNo(settings, "hai_time_sync"); + Global.hai_time_interval = ValidateInt(settings, "hai_time_interval"); + Global.hai_time_drift = ValidateInt(settings, "hai_time_drift"); + + // mySQL Database + Global.mysql_logging = ValidateYesNo(settings, "mysql_logging"); + Global.mysql_connection = settings["mysql_connection"]; + + // Events + Global.mail_server = settings["mail_server"]; + Global.mail_port = ValidatePort(settings, "mail_port"); + Global.mail_username = settings["mail_username"]; + Global.mail_password = settings["mail_password"]; + Global.mail_from = ValidateMailFrom(settings, "mail_from"); + Global.mail_to = ValidateMailTo(settings, "mail_to"); + Global.mail_alarm_to = ValidateMailTo(settings, "mail_alarm_to"); + + // Prowl Notifications + Global.prowl_key = ValidateMultipleStrings(settings, "prowl_key"); + Global.prowl_messages = ValidateYesNo(settings, "prowl_messages"); + + // Web Service + Global.webapi_enabled = ValidateYesNo(settings, "webapi_enabled"); + Global.webapi_port = ValidatePort(settings, "webapi_port"); + + // Verbose Output + Global.verbose_unhandled = ValidateYesNo(settings, "verbose_unhandled"); + Global.verbose_event = ValidateYesNo(settings, "verbose_event"); + Global.verbose_area = ValidateYesNo(settings, "verbose_area"); + Global.verbose_zone = ValidateYesNo(settings, "verbose_zone"); + Global.verbose_thermostat_timer = ValidateYesNo(settings, "verbose_thermostat_timer"); + Global.verbose_thermostat = ValidateYesNo(settings, "verbose_thermostat"); + Global.verbose_unit = ValidateYesNo(settings, "verbose_unit"); + Global.verbose_message = ValidateYesNo(settings, "verbose_message"); + } + + private static int ValidateInt(NameValueCollection settings, string section) + { + try + { + return Int32.Parse(settings[section]); + } + catch + { + Event.WriteError("Settings", "Invalid integer specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateInt shouldn't reach here"); + } + + private static int ValidatePort(NameValueCollection settings, string section) + { + try + { + int port = Int32.Parse(settings[section]); + + if (port < 1 || port > 65534) + throw new Exception(); + + return port; + } + catch + { + Event.WriteError("Settings", "Invalid port specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidatePort shouldn't reach here"); + } + + private static bool ValidateBool(NameValueCollection settings, string section) + { + try + { + return Boolean.Parse(settings[section]); + } + catch + { + Event.WriteError("Settings", "Invalid bool specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateBool shouldn't reach here"); + } + + private static IPAddress ValidateIP(NameValueCollection settings, string section) + { + if (settings[section] == "*") + return IPAddress.Any; + + if (settings[section] == "") + return IPAddress.None; + + try + { + return IPAddress.Parse(section); + } + catch + { + Event.WriteError("Settings", "Invalid IP specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateIP shouldn't reach here"); + } + + private static string ValidateDirectory(NameValueCollection settings, string section) + { + try + { + if (!Directory.Exists(settings[section])) + Directory.CreateDirectory(settings[section]); + + return settings[section]; + } + catch + { + Event.WriteError("Settings", "Invalid directory specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateDirectory shouldn't reach here"); + } + + private static MailAddress ValidateMailFrom(NameValueCollection settings, string section) + { + try + { + return new MailAddress(settings[section]); + } + catch + { + Event.WriteError("Settings", "Invalid email specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateMailFrom shouldn't reach here"); + } + + private static MailAddress[] ValidateMailTo(NameValueCollection settings, string section) + { + try + { + if(settings[section] == null) + return new MailAddress[] {}; + + string[] emails = settings[section].Split(','); + MailAddress[] addresses = new MailAddress[emails.Length]; + + for(int i=0; i < emails.Length; i++) + addresses[i] = new MailAddress(emails[i]); + + return addresses; + } + catch + { + Event.WriteError("Settings", "Invalid email specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateMailTo shouldn't reach here"); + } + + private static string[] ValidateMultipleStrings(NameValueCollection settings, string section) + { + try + { + if (settings[section] == null) + return new string[] { }; + + return settings[section].Split(','); + } + catch + { + Event.WriteError("Settings", "Invalid string specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateMultipleStrings shouldn't reach here"); + } + + private static bool ValidateYesNo (NameValueCollection settings, string section) + { + if (settings[section] == null) + return false; + if (string.Compare(settings[section], "yes", true) == 0) + return true; + else if (string.Compare(settings[section], "no", true) == 0) + return false; + else + { + Event.WriteError("Settings", "Invalid yes/no specified for " + section); + Environment.Exit(1); + } + + throw new Exception("ValidateYesNo shouldn't reach here"); + } + + private static NameValueCollection LoadCollection(string sFile) + { + NameValueCollection settings = new NameValueCollection(); + + try + { + FileStream fs = new FileStream(sFile, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs); + + while (true) + { + string line = sr.ReadLine(); + + if (line == null) + break; + + if (line.StartsWith("#")) + continue; + + string[] split = line.Split('='); + + for (int i = 0; i < split.Length; i++) + split[i] = split[i].Trim(); + + if (split.Length == 2) + settings.Add(split[0], split[1]); + } + + sr.Close(); + fs.Close(); + } + catch (FileNotFoundException) + { + Event.WriteError("Settings", "Unable to parse settings file " + sFile); + Environment.Exit(1); + } + + return settings; + } + } +} diff --git a/HAILogger/SubscribeContract.cs b/HAILogger/SubscribeContract.cs new file mode 100644 index 0000000..2448246 --- /dev/null +++ b/HAILogger/SubscribeContract.cs @@ -0,0 +1,11 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class SubscribeContract + { + [DataMember] + public string callback { get; set; } + } +} diff --git a/HAILogger/ThermostatContract.cs b/HAILogger/ThermostatContract.cs new file mode 100644 index 0000000..d96fad7 --- /dev/null +++ b/HAILogger/ThermostatContract.cs @@ -0,0 +1,33 @@ +using HAI_Shared; +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class ThermostatContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public string name { get; set; } + + [DataMember] + public ushort temp { get; set; } + + [DataMember] + public ushort humidity { get; set; } + + [DataMember] + public ushort coolsetpoint { get; set; } + + [DataMember] + public ushort heatsetpoint { get; set; } + + [DataMember] + public enuThermostatMode mode { get; set; } + + [DataMember] + public enuThermostatFanMode fanmode { get; set; } + } +} diff --git a/HAILogger/UnitContract.cs b/HAILogger/UnitContract.cs new file mode 100644 index 0000000..69563a6 --- /dev/null +++ b/HAILogger/UnitContract.cs @@ -0,0 +1,17 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class UnitContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public string name { get; set; } + + [DataMember] + public ushort level { get; set; } + } +} diff --git a/HAILogger/WebNotification.cs b/HAILogger/WebNotification.cs new file mode 100644 index 0000000..c0d4b92 --- /dev/null +++ b/HAILogger/WebNotification.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Net; + +namespace HAILogger +{ + static class WebNotification + { + private static List subscriptions = new List(); + + public static void AddSubscription(string callback) + { + if (!subscriptions.Contains(callback)) + { + Event.WriteVerbose("WebRequest", "Adding subscription to " + callback); + subscriptions.Add(callback); + } + } + + public static void Send(string type, string body) + { + WebClient client = new WebClient(); + client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); + client.Headers.Add("type", type); + client.UploadStringCompleted += client_UploadStringCompleted; + + foreach (string subscription in subscriptions) + { + try + { + client.UploadStringAsync(new Uri(subscription), "POST", body, subscription); + } + catch (Exception ex) + { + Event.WriteError("WebNotification", "An error occurred sending notification to " + subscription + "\r\n" + ex.ToString()); + subscriptions.Remove(subscription); + } + } + } + + static void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) + { + if (e.Error != null) + { + Event.WriteError("WebNotification", "An error occurred sending notification to " + e.UserState.ToString() + "\r\n" + e.Error.Message); + subscriptions.Remove(e.UserState.ToString()); + } + } + } +} diff --git a/HAILogger/WebService.cs b/HAILogger/WebService.cs new file mode 100644 index 0000000..f879cab --- /dev/null +++ b/HAILogger/WebService.cs @@ -0,0 +1,44 @@ +using HAI_Shared; +using System; +using System.ServiceModel; +using System.ServiceModel.Description; +using System.ServiceModel.Web; + +namespace HAILogger +{ + public class WebService + { + public static clsHAC HAC; + WebServiceHost host; + + public WebService(clsHAC hac) + { + HAC = hac; + } + + public void Start() + { + Uri uri = new Uri("http://0.0.0.0:" + Global.webapi_port + "/"); + host = new WebServiceHost(typeof(HAIService), uri); + + try + { + ServiceEndpoint ep = host.AddServiceEndpoint(typeof(IHAIService), new WebHttpBinding(), ""); + host.Open(); + + Event.WriteInfo("WebService", "Listening on " + uri.ToString()); + } + catch (CommunicationException ex) + { + Event.WriteError("WebService", "An exception occurred: " + ex.Message); + host.Abort(); + } + } + + public void Stop() + { + if (host != null) + host.Close(); + } + } +} diff --git a/HAILogger/ZoneContract.cs b/HAILogger/ZoneContract.cs new file mode 100644 index 0000000..3c0d28d --- /dev/null +++ b/HAILogger/ZoneContract.cs @@ -0,0 +1,17 @@ +using System.Runtime.Serialization; + +namespace HAILogger +{ + [DataContract] + public class ZoneContract + { + [DataMember] + public ushort id { get; set; } + + [DataMember] + public string name { get; set; } + + [DataMember] + public string status { get; set; } + } +} diff --git a/README.md b/README.md index f14fe51..84a86a9 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,87 @@ # HAILogger Provides logging and web service API for HAI/Leviton OmniPro II controllers + +##Download +You can download the [binary here](http://www.excalibur-partners.com/downloads/HAILogger_1_0_5.zip) + +##Requirements +- .NET Framework 4.0 +- mySQL 5.1 ODBC Connector + +##Operation +- Area, Messages, Units, and Zones are logged to mySQL when status changes +- Thermostats are logged to mySQL once per minute + - If no notifications are received within 4 minutes a request is issued + - After 5 minutes of no updates a warning will be logged and mySQL will not be updated + - If the temp is 0 a warning will be logged and mySQL will not be updated +- Controller time is checked and compared to the local computer time disregarding time zones + +##Notifications +- Emails are sent to mail_alarm_to when an area status changes +- Prowl notifications are sent when an areas status changes + +##Installation +1. Copy files to your desiered location like C:\HAILogger +2. Create mySQL database and import HAILogger.sql +3. Update HAILogger.ini with settings +4. Run HAILogger.exe and verify everything is working +5. For Windows Service run install.bat / uninstall.bat + +##MySQL Setup +You will want to install the MySQL Community Server, Workbench, and ODBC Connector. The Workbench software provides a graphical interface to administer the MySQL server. The HAI Logger uses ODBC to communicate with the database. The MySQL ODBC Connector library is needed for Windows ODBC to communicate with MySQL. Make sure you install version 5.1 of the MySQL ODBC Connector provided in the link below. + +http://dev.mysql.com/downloads/mysql/ +http://dev.mysql.com/downloads/tools/workbench/ +http://dev.mysql.com/downloads/connector/odbc/5.1.html + +After installing MySQL server it should have asked you to setup an instance. One of the steps of the instance wizard was to create a root password. Assuming you installed the HAI Logger on the same computer you will want to use the below settings in HAILogger.ini. + +mysql_server = localhost +mysql_user = root +mysql_password = password you set in the wizard + +At this point we need to open MySQL Workbench to create the database (called a schema in the Workbench GUI) for HAILogger to use. + +1. After opening the program double-click on "Local instance MySQL" and enter the password you set in the wizard. +2. On the toolbar click the "Create a new schema" button, provide a name, and click apply. +3. On the left side right-click on the schema you created and click "Set as default schema". +4. In the middle section under Query1 click the open file icon and select the HAILogger.sql file. +5. Click the Execute lighting bolt to run the query, which will create the tables. + +Lastly in HAILogger.ini set mysql_database to the name of the schema you created. This should get you up and running. The MySQL Workbench can also be used to view the data that HAILogger inserts into the tables. + +##Web Service API +To test the API you can use your browser to view a page or PowerShell (see below) to change a value. + +- http://localhost:8000/ListUnits +- http://localhost:8000/GetUnit?id=1 +- Invoke-WebRequest -Uri "http://localhost:8000/SetUnit" -Method POST -ContentType "application/json" -Body (convertto-json -InputObject @{"id"=1;"value"=100}) -UseBasicParsing + +##Change Log +Version 1.0.5 - 2016-11-15 +- Added web service API for Samsung SmartThings integration + +Version 1.0.4 - 2014-05-08 +- Merged HAILogger.exe and HAILoggerService.exe +- Added immediate time sync after controller reconnect + +Version 1.0.3 - 2013-01-06 +- Added setting for prowl console message notification +- Added settings for verbose output control +- Added setting to enable mySQL logging +- Added queue to mySQL logging +- Changed mySQL log time from mySQL NOW() to computer time +- Changed prowl notifications to be asynchronous +- Fixed crash when prowl api down +- Fixed setting yes/no parsing so no setting works +- Fixed incorrect thermostat out of date status warning + +Version 1.0.2 - 2012-12-30 +- Fixed thermostat invalid mySQL logging error + +Version 1.0.1 - 2012-12-30 +- Added setting to adjust time sync interval +- Fixed crash when controller time not initially set + +Version 1.0.0 - 2012-12-29 +- Initial release \ No newline at end of file