static internal void Update_RemoteDevice(Thermostat thermostat, SensorCapabilities capability, DeviceDataPoint ddPoint, EcobeeConnection ecobee) { string name; string id = GetDeviceKeys(ddPoint.device, out name); if (name.Equals("Temperature Sensor")) { if (capability.value != "unknown") { var temp = Int16.Parse(capability.value) / 10; hs.SetDeviceValueByRef(ddPoint.dvRef, temp, true); } else { hs.SetDeviceString(ddPoint.dvRef, "unknown", true); } ddPoint.device.set_ScaleText(hs, thermostat.settings.useCelsius ? "C" : "F"); } if (name.Equals("Occupancy Sensor")) { if (capability.value.Equals("true")) { hs.SetDeviceValueByRef(ddPoint.dvRef, 1, true); } else { hs.SetDeviceValueByRef(ddPoint.dvRef, 0, true); } } }
private void EnableAllowedSensors() { if (locationProvider != null) { SensorCapabilities sensors = locationProvider.Sensors; sensors.GeoLocationEnabled = true; sensors.WifiEnabled = HaveAccessWifiInformationEntitlement; sensors.BluetoothEnabled = true; } }
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); }