コード例 #1
0
ファイル: Util.cs プロジェクト: spudwebb/ECOBEESIID_Plugin
        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);
                }
            }
        }
コード例 #2
0
 private void EnableAllowedSensors()
 {
     if (locationProvider != null)
     {
         SensorCapabilities sensors = locationProvider.Sensors;
         sensors.GeoLocationEnabled = true;
         sensors.WifiEnabled        = HaveAccessWifiInformationEntitlement;
         sensors.BluetoothEnabled   = true;
     }
 }
コード例 #3
0
ファイル: Util.cs プロジェクト: spudwebb/ECOBEESIID_Plugin
        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);
        }