Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
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}");
                }
            }
        }