public async Task OnGetAsync() { Stopwatch watch = Stopwatch.StartNew(); Lights = await _hueConnector.GetLightsAsync(); Lights = Lights.OrderBy(l => l.Name).ToList(); System.Console.WriteLine($"Hue took {watch.ElapsedMilliseconds}ms"); watch.Restart(); Thermostat = await _ecobeeConnector.GetThermostatAsync(); System.Console.WriteLine($"Thermostat took {watch.ElapsedMilliseconds}ms"); watch.Restart(); RemoteSensors = Thermostat.RemoteSensors.Select(s => (IRemoteSensor)s).ToList(); System.Console.WriteLine($"Thermo Sensors took {watch.ElapsedMilliseconds}ms"); watch.Restart(); //add garage sensors RemoteSensors.AddRange(await _garageSensorConnector.GetSensorsAsync()); System.Console.WriteLine($"Garage Sensors took {watch.ElapsedMilliseconds}ms"); watch.Restart(); Vehicles = (await _teslaConnector.GetVehiclesAsync())?.Vehicles ?? new TeslaVehicle[] { }; System.Console.WriteLine($"Vehicles took {watch.ElapsedMilliseconds}ms"); watch.Restart(); VehicleData = new Dictionary <string, VehicleData>(); if (Vehicles.Any()) { foreach (TeslaVehicle vehicle in Vehicles) { TeslaVehicleDataResponse response = await _teslaConnector.GetVehicleDataAsync(vehicle.IdS); if (response != null) { VehicleData[vehicle.IdS] = response.VehicleData; } } } System.Console.WriteLine($"Vehicle Data took {watch.ElapsedMilliseconds}ms"); watch.Stop(); }
static internal bool Remote_Devices(string tString, Thermostat thermostat, RemoteSensors remote, SensorCapabilities capability, List <DeviceDataPoint> deviceList, EcobeeConnection ecobee) { var sensorType = ""; if (capability.type.Equals("temperature")) { sensorType = "Temperature"; } if (capability.type.Equals("occupancy")) { sensorType = "Occupancy"; } string name; string id; foreach (var ddPoint in deviceList) { id = GetDeviceKeys(ddPoint.device, out name); if (id == (thermostat.identifier + remote.code) && name == (sensorType + tString)) { Update_RemoteDevice(thermostat, capability, ddPoint, ecobee); return(false); } } DeviceClass dv = new DeviceClass(); dv = GenericHomeSeerDevice(dv, sensorType + tString, remote.name, thermostat.identifier + remote.code); var dvRef = dv.get_Ref(hs); id = GetDeviceKeys(dv, out name); switch (name) { case "Temperature Sensor": { VSVGPairs.VSPair SPair = default(VSVGPairs.VSPair); SPair = new VSVGPairs.VSPair(ePairStatusControl.Status); SPair.PairType = VSVGPairs.VSVGPairType.Range; SPair.RangeStart = -500; SPair.RangeEnd = 500; SPair.RangeStatusSuffix = " " + getTemperatureUnits(thermostat.settings.useCelsius); hs.DeviceVSP_AddPair(dvRef, SPair); VSVGPairs.VGPair GPair = new VSVGPairs.VGPair(); GPair.PairType = VSVGPairs.VSVGPairType.Range; GPair.RangeStart = -500; GPair.RangeEnd = 500; GPair.Graphic = "/images/HomeSeer/contemporary/Thermometer-70.png"; hs.DeviceVGP_AddPair(dvRef, GPair); break; } case "Occupancy Sensor": { VSVGPairs.VSPair SPair = default(VSVGPairs.VSPair); SPair = new VSVGPairs.VSPair(ePairStatusControl.Status); SPair.PairType = VSVGPairs.VSVGPairType.SingleValue; SPair.Value = 0; SPair.Status = "Unoccupied"; hs.DeviceVSP_AddPair(dvRef, SPair); SPair.Value = 1; SPair.Status = "Occupied"; hs.DeviceVSP_AddPair(dvRef, SPair); VSVGPairs.VGPair GPair = new VSVGPairs.VGPair(); GPair.PairType = VSVGPairs.VSVGPairType.SingleValue; GPair.Set_Value = 0; GPair.Graphic = "/images/HomeSeer/contemporary/away.png"; hs.DeviceVGP_AddPair(dvRef, GPair); GPair.Set_Value = 1; GPair.Graphic = "/images/HomeSeer/contemporary/home.png"; hs.DeviceVGP_AddPair(dvRef, GPair); break; } } return(true); }