public static DateTime CalculatePlugwiseDate(PlugwiseHistoryMessage Hmsg, PlugwiseDeviceInfo devInfo)
        {
            try
            {
                DateTime today = System.DateTime.Now;
                DateTime CurrentDate = MessageHelper.CalculateDate(devInfo.InternalYear, devInfo.InternalMonth, devInfo.InternalMinutes);

                byte logYear = ConversionClass.HexToByte(Hmsg.RawHourvalue.Substring(0, 2));
                byte logMonth = ConversionClass.HexToByte(Hmsg.RawHourvalue.Substring(2, 2));
                int logMinutes = ConversionClass.HexStringToUInt16(Hmsg.RawHourvalue.Substring(4, 4));
                DateTime logDate = MessageHelper.CalculateDate(logYear, logMonth, logMinutes);
                TimeSpan logDatediff = CurrentDate.Subtract(logDate);
                logDate = today.Subtract(logDatediff);
                return logDate;
            }
            catch (ArgumentOutOfRangeException ex)
            {
                throw new Exception("Error on calculate Date");
            }
        }
        public PlugwiseHistoryPowerMessage(PlugwiseMessage msg)
        {
            List<PlugwiseMessage> output = new List<PlugwiseMessage>();

            prevHour = nullDate;

            Messages = new List<PlugwiseHistoryMessage>();

            this.Mac = msg.Owner;
            string[] values = Regex.Split(msg.Message, "\\|");
            for (int i = 0; i < 9; i=i+2)
            {
               //     PlugwiseHistoryPowerMessage
                PlugwiseHistoryMessage Messag = new PlugwiseHistoryMessage();
                Messag.MeasurementValue = int.Parse(values[i + 1]);
                Messag.RawHourvalue = values[i];
                this.Messages.Add(Messag);
            }
            this.LogAddress = Convert.ToInt32(values[8]);
            this.Type = PlugwiseActions.history;
            this.nb_Sequence = Convert.ToInt32(values[9]);
        }