private async void PollingConds() { try { var deviceGroups = await _aircoManager.GetDeviceGroups(); deviceGroups.GroupList.ForEach(g => { g.DeviceIdList.ForEach(async d => { try { var device = await _aircoManager.GetDeviceStatus(d.DeviceGuid); var deviceEd = new PanasonicAirConditioner { EntityName = d.DeviceName, DeviceId = d.DeviceGuid, GroupName = g.GroupName, InsideTemperature = device.Parameters.InsideTemperature, OutTemperature = device.Parameters.OutTemperature, TemperatureSet = device.Parameters.TemperatureSet, OperationMode = device.Parameters.OperationMode.ToString() }; _ioTService.InsertEvent(deviceEd); } catch (Exception e) { _logger.LogError($"Error during air conditioner => {e}"); } }); }); } catch (Exception e) { if (e.Message.Contains("Token expires")) { _config.AuthCode = ""; await Start(); } else { _logger.LogError($"Error during air conditioner"); } //throw; } }
static async Task <int> List(ListOptions options) { await ValidateToken(); var groups = await _manager.GetDeviceGroups(); foreach (var group in groups.GroupList) { Console.WriteLine($"Group: {group.GroupName}"); foreach (var x in group.DeviceIdList) { Console.WriteLine($"Device: {x.DeviceName} => {x.DeviceGuid}"); } } return(0); }
private async Task GetDevices() { try { var groups = await _aircoManager.GetDeviceGroups(); groups.GroupList.ForEach(g => { g.DeviceIdList.ForEach(d => { var entity = BuildEntity <PanasonicAirEvent>(); entity.Name = d.DeviceName; entity.AirCondGroup = g.GroupName; entity.DeviceType = d.DeviceType; entity.DeviceGuid = d.DeviceGuid; entity.DeviceMode = GetDeviceMode(d); entity.IsOn = d.Parameters.Operate == OperateType.On; entity.Temperature = d.Parameters.TemperatureSet; entity.FanSpeed = d.Parameters.FanSpeed; entity.AirSwingLR = d.Parameters.AirSwingLR; entity.AirSwingUD = d.Parameters.AirSwingUD; PublishEntity(entity); }); }); } catch (Exception ex) { if (ex.Message == "Got HTTP Unauthorized: {\"message\":\"Token expires\",\"code\":4100}") { Logger.LogWarning($"Panasonic Token expired, re login"); _panasonicAirVault.AccessToken = ""; await Login(); } else { Logger.LogError($"Error during get Device groups {ex.Message}"); } } }