private async Task <DomoticzMotionDetectionClientModel> GetMotionDetectionClientModel(Device device, bool onlyExportOneHour)
        {
            using (var client = new HttpClient())
            {
                var url      = $"http://{_domoticzSettings.Host}:{_domoticzSettings.Port}/json.htm?type=lightlog&idx={device.DomoticzMotionDetectionIdx}";
                var response = await client.GetStringAsync(url);

                var    data       = JsonConvert.DeserializeObject <dynamic>(response);
                JArray resultList = data.result;

                if (resultList == null)
                {
                    return(null);
                }

                // Cast resultList to objects
                var values = resultList.ToObject <List <DomoticzMotionDetection> >();

                if (onlyExportOneHour)
                {
                    var timeLimit = DateTime.Today.AddHours(-1);
                    values = values
                             .Where(a_item => a_item.Date.Value.Date >= timeLimit)
                             .ToList();
                }

                var clientModel = new DomoticzMotionDetectionClientModel
                {
                    Device           = device,
                    MotionDetections = values
                };

                return(clientModel);
            }
        }
Esempio n. 2
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='clientModel'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task ExporterInsertMotionDetectionValuesPostAsync(this IHouseDBAPI operations, DomoticzMotionDetectionClientModel clientModel = default(DomoticzMotionDetectionClientModel), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.ExporterInsertMotionDetectionValuesPostWithHttpMessagesAsync(clientModel, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
Esempio n. 3
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='clientModel'>
 /// </param>
 public static void ExporterInsertMotionDetectionValuesPost(this IHouseDBAPI operations, DomoticzMotionDetectionClientModel clientModel = default(DomoticzMotionDetectionClientModel))
 {
     operations.ExporterInsertMotionDetectionValuesPostAsync(clientModel).GetAwaiter().GetResult();
 }