コード例 #1
5
        static void Main()
        {
            Thermostat thermostat = new Thermostat();

            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
コード例 #2
0
        static void Main(string[] args)
        {
            //coздать объект класса Thermostat

            Thermostat thermostat = new Thermostat();
            //coздать объект класса Heater установив начальную температуру равную 30 градусов

            //coздать объект класса Cooler установив начальную температуру равную 40 градусов

            //объект класса Heater - подписаться на событие изменения температуры класса Thermostat

            //объект класса Cooler - подписаться на событие изменения температуры класса Thermostat

            //эмуляция изменения температуры объекта класса Thermostat

            //объект класса Cooler - отписаться от события изменения температуры класса Thermostat

            //эмуляция изменения температуры объекта класса Thermostat на 45 градусов

            Type type = thermostat.GetType();

            foreach (var t in type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
            {
                Console.WriteLine(t.Name);
            }
        }
コード例 #3
0
ファイル: Write.cs プロジェクト: trocken2/Eco2
        async Task Connect(Thermostat thermostat)
        {
            var name = thermostat.Serial;
            var uuid = thermostat.Uuid;
            var connectedThermostat = await accessor.ConnectToPeripheralWithNameAndUuid(name, uuid);

            var mainService    = FindService(connectedThermostat, Uuids.MAIN_SERVICE);
            var batteryService = FindService(connectedThermostat, Uuids.BATTERY_SERVICE);

            var mainServiceCharacteristics = await accessor.DiscoverCharacteristicsFor(mainService);

            var secretValueCharacteristic = Array.Find(mainServiceCharacteristics, c => c.Uuid == Uuids.SECRET_KEY);

            if (secretValueCharacteristic == null && !thermostats.HasSecretAndUuidFor(serial))
            {
                Console.Error.WriteLine("You need to push the timer button on the thermostat");
                Environment.Exit(1);
            }

            var pinCodeCharacteristic = CharacteristicWithUuid(mainServiceCharacteristics, Uuids.PIN_CODE_CHARACTERISTIC);

            if (pinCodeCharacteristic == null)
            {
                Console.Error.WriteLine($"Did not find pin code characteristic ({Uuids.PIN_CODE_CHARACTERISTIC})");
                Environment.Exit(1);
            }

            Console.Error.WriteLine("Writing pin code");
            byte[] zeroBytes = { 0, 0, 0, 0 };
            await accessor.WriteCharacteristicValue(mainService, pinCodeCharacteristic, zeroBytes);

            Console.Error.WriteLine("Wrote pin code");

            var batteryServiceCharacteristics = await accessor.DiscoverCharacteristicsFor(batteryService);

            Console.Error.WriteLine("Discovered battery service characteristics");

            thermostat.BatteryLevel = await ReadCharacteristicWithUuid(batteryService, batteryServiceCharacteristics, Uuids.BATTERY_LEVEL);

            thermostat.Name = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.DEVICE_NAME);

            thermostat.Temperature = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.TEMPERATURE);

            thermostat.Settings = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.SETTINGS);

            thermostat.Schedule1 = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.SCHEDULE_1);

            thermostat.Schedule2 = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.SCHEDULE_2);

            thermostat.Schedule3 = await ReadCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.SCHEDULE_3);

            var parsedThermostat = new ParsedThermostat(thermostat);

            parsedThermostat.ApplyUpdates();

            await WriteCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.TEMPERATURE, thermostat.Temperature);
            await WriteCharacteristicWithUuid(mainService, mainServiceCharacteristics, Uuids.SETTINGS, thermostat.Settings);

            await accessor.Disconnect();
        }
コード例 #4
0
            public async Task ShouldSetMethodToPost()
            {
                var thermostat = new Thermostat("id123");
                await _webService.SetHvacModeAsync(thermostat, HvacMode.Off);

                _webRequest.VerifySet(w => w.Method = "POST");
            }
コード例 #5
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);
                }
            }
        }
コード例 #6
0
            public async Task ShouldSetContentTypeToJson()
            {
                var thermostat = new Thermostat("id123");
                await _webService.SetHvacModeAsync(thermostat, HvacMode.Off);

                _webRequest.VerifySet(w => w.ContentType = ContentType.Json);
            }
コード例 #7
0
        static void Main(string[] args)
        {
            Thermostat thermostat = new Thermostat();

            Heater heater = new Heater(30);

            Cooler cooler = new Cooler(40);

            thermostat.Add_TemperatureChanged(heater.OnTemperatureChanged);
            thermostat.Add_TemperatureChanged(cooler.Update);

            thermostat.EmulateTemperatureChange();

            thermostat.Remove_TemperatureChanged(cooler.Update);

            thermostat.EmulateTemperatureChange();

            Type type = thermostat.GetType();

            foreach (var t in type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
            {
                Console.WriteLine(t.Name);
            }

            Console.ReadKey();
        }
コード例 #8
0
            public void SetUp()
            {
                _statusProvider       = new Mock <IStatusProvider>();
                _sessionProvider      = new Mock <ISessionProvider>();
                _analyticsService     = new Mock <IAnalyticsService>();
                _nestWebService       = new Mock <INestWebService>();
                _statusUpdaterService = new Mock <IStatusUpdaterService>();

                _structure        = new Structure("1");
                _firstThermostat  = new Thermostat("1");
                _secondThermostat = new Thermostat("1");
                _structure.Thermostats.Add(_firstThermostat);
                _structure.Thermostats.Add(_secondThermostat);
                var structures = new List <Structure> {
                    _structure
                };

                _nestWebService.Setup(w => w.LoginAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(new WebServiceResult()));
                _nestWebService.Setup(w => w.UpdateTransportUrlAsync()).Returns(Task.FromResult(new WebServiceResult()));
                _nestWebService.Setup(w => w.SetAwayMode(It.IsAny <Structure>(), It.IsAny <bool>())).Returns(Task.FromResult(new WebServiceResult()));
                _nestWebService.Setup(w => w.GetFullStatusAsync()).Returns(Task.FromResult(new GetStatusResult(structures)));
                _nestWebService.Setup(w => w.ChangeTemperatureAsync(It.IsAny <Thermostat>(), It.IsAny <double>(), It.IsAny <TemperatureMode>())).Returns(Task.FromResult(new WebServiceResult()));
                _nestWebService.Setup(w => w.SetFanModeAsync(It.IsAny <Thermostat>(), It.IsAny <FanMode>())).Returns(Task.FromResult(new WebServiceResult()));
                _nestWebService.Setup(w => w.SetHvacModeAsync(It.IsAny <Thermostat>(), It.IsAny <HvacMode>())).Returns(Task.FromResult(new WebServiceResult()));
                _statusUpdaterService.Setup(s => s.UpdateStatusAsync()).Returns(Task.Delay(0));

                ServiceContainer.RegisterService <IStatusProvider>(_statusProvider.Object);
                ServiceContainer.RegisterService <ISessionProvider>(_sessionProvider.Object);
                ServiceContainer.RegisterService <IAnalyticsService>(_analyticsService.Object);
                ServiceContainer.RegisterService <INestWebService>(_nestWebService.Object);
                ServiceContainer.RegisterService <IStatusUpdaterService>(_statusUpdaterService.Object);
                _viewModel = new NestViewModel();
            }
コード例 #9
0
        protected double UpdatePlant(Thermostat dev, double current, double outside_temp)
        {
            if (!dev.Enabled)
            {
                return(0.0);
            }
            var max_error = 1.0;

            if (_running)
            {
                max_error = 0.05;         //once on, drive error low
            }

            var error = current - dev.SetPoint.C;

            var plant_drive = 0.0;

            if (Math.Abs(error) > max_error)
            {
                plant_drive = Math.Sign(error) * (outside_temp - current) * _thermal_rate * 2.0;
                _running    = true;
            }
            else if (_running)    //error is below, and running, shut off.
            {
                _running = false;
            }

            return(plant_drive);
        }
コード例 #10
0
        public void Update(IDeviceState state, bool fromDatabase = false)
        {
            //TODO: update more properties?

            if (!fromDatabase)
            {
                if (Name == null && state.Name != null)
                {
                    Name = state.Name;
                }

                if ((Type == null || Type.Equals(DeviceType.Unknown)) && state.Type != null)
                {
                    Type = state.Type;
                }
            }

            Location = (state.Location == null) ? null : new Location(state.Location.GetParts());

            IsConnected   = state.IsConnected;
            CurrentAction = state.CurrentAction;

            BinarySwitch.Update(state.BinarySwitchState ?? ReadOnlyBinarySwitchSwitchState.Blank());
            MultilevelSwitch.Update(state.MultilevelSwitchState ?? ReadOnlyMultilevelSwitchState.Blank());
            ColorSwitch.Update(state.ColorSwitchState ?? ReadOnlyColorSwitchState.Blank());
            BinarySensor.Update(state.BinarySensorState ?? ReadOnlyBinarySensorState.Blank());
            PowerSensor.Update(state.PowerSensorState ?? ReadOnlyMultilevelSensorState <IPower> .Blank());
            TemperatureSensor.Update(state.TemperatureSensorState ?? ReadOnlyMultilevelSensorState <ITemperature> .Blank());
            HumiditySensor.Update(state.HumiditySensorState ?? ReadOnlyMultilevelSensorState <IHumidity> .Blank());
            IlluminanceSensor.Update(state.IlluminanceSensorState ?? ReadOnlyMultilevelSensorState <IIlluminance> .Blank());
            Thermostat.Update(state.ThermostatState ?? ReadOnlyThermostatState.Blank());
        }
 public void ConstrAvecParamCasHorsLimiteMaxPlusUnRetourExceptionTest()
 {
     // Arranger (Arrange) Agir (Agir)
     Thermostat objThermostat = new Thermostat(Thermostat.MAX_TEMPERATURE + 1);
     // Auditer (Assert)
     // ArgumentOutOfRangeException attendue intercepté au niveau de l'annotation  [ExpectedException(typeof(ArgumentOutOfRangeException))]
 }
コード例 #12
0
        public void testEquals_shouldReturnFalseWithNonThermostat()
        {
            Object     o = new Object();
            Thermostat t = new Thermostat();

            Assert.IsFalse(t.Equals(o));
        }
コード例 #13
0
        public void ShouldUpdateHvacMode()
        {
            var thermostat = new Thermostat("");

            _deserializer.UpdateThermostatStatusFromSharedStatusResult(FakeJsonMessages.GetSharedStatusResultTempRangeMode, thermostat);

            Assert.AreEqual(HvacMode.HeatAndCool, thermostat.HvacMode);
        }
コード例 #14
0
        private async void sendDeviceMetaData()
        {
            DeviceProperties device     = new DeviceProperties();
            Thermostat       thermostat = new Thermostat();

            thermostat.ObjectType        = "DeviceInfo";
            thermostat.IsSimulatedDevice = false;
            thermostat.Version           = "1.0";

            device.HubEnabledState = true;
            device.DeviceID        = deviceId;
            device.Manufacturer    = "Raspberry";
            device.ModelNumber     = "Pi2";
            device.SerialNumber    = "5849735293875";
            device.FirmwareVersion = "10";
            device.Platform        = "Windows 10";
            device.Processor       = "RaspBerry";
            device.InstalledRAM    = "976 MB";
            device.DeviceState     = "normal";

            string pos = await GetGeoLocFromWeb();

            var    nloc     = pos.IndexOf("loc");
            var    sub01    = pos.Substring(nloc + 7);
            string location = sub01.Substring(0, sub01.IndexOf('"'));
            var    x        = location.Split(',');

            device.Latitude  = System.Convert.ToDouble(x[0]);
            device.Longitude = System.Convert.ToDouble(x[1]);

            thermostat.DeviceProperties = device;

            Command TriggerAlarm = new Command();

            TriggerAlarm.Name = "TriggerAlarm";
            CommandParameter param = new CommandParameter();

            param.Name = "Message";
            param.Type = "String";
            TriggerAlarm.Parameters = new CommandParameter[] { param };

            thermostat.Commands = new Command[] { TriggerAlarm };

            try
            {
                var msg = new Message(Serialize(thermostat));
                if (deviceClient != null)
                {
                    await deviceClient.SendEventAsync(msg);
                }
            }
            catch (System.Exception e)
            {
                Debug.Write("Exception while sending device meta data :\n" + e.Message.ToString());
            }

            Debug.Write("Sent meta data to IoT Suite\n" + hostName);
        }
コード例 #15
0
        public async Task <ActionResult> Initialize(string connectionString, int transportType)
        {
            await Uninitialize(connectionString);

            thermostat = new Thermostat(connectionString, transportType);
            await thermostat.Initialize();

            return(Json(new { success = true }));
        }
コード例 #16
0
            public async Task ShouldUseCorrectUrl()
            {
                var thermostat = new Thermostat("id123");
                await _webService.SetHvacModeAsync(thermostat, HvacMode.Off);

                var expectedUri = new Uri(BaseUrl + "/v2/put/shared.id123");

                _requestProvider.Verify(r => r.CreateRequest(expectedUri));
            }
コード例 #17
0
ファイル: ApiBase.cs プロジェクト: JakeH312/PaoStat
 public ThermostatGetDto ThermostatGetDtoConversion(Thermostat t) => new ThermostatGetDto()
 {
     Name               = t.Name,
     Code               = t.Code,
     HumidityReading    = t.HumidityReading,
     Location           = t.Location,
     TemperatureReading = t.TemperatureReading,
     TemperatureSetting = t.TemperatureSetting
 };
コード例 #18
0
        public void Create(Thermostat thermostat)
        {
            Validator.RequireString(thermostat.BarcodeNumber);
            Validator.RequireString(thermostat.SerialNumber);
            Validator.RequireString(thermostat.Model);

            context.Thermostats.Add(thermostat);
            context.SaveChanges();
        }
        public void TemperatureSetCasHorsLimiteMaxPlusUnRetourExceptionTest()
        {
            // Arranger (Arrange)
            Thermostat objThermostat = new Thermostat(Thermostat.TEMPERATURE_INITIALE);

            // Agir
            objThermostat.Temperature = Thermostat.MAX_TEMPERATURE + 1;
            // Auditer (Assert)
            // ArgumentOutOfRangeException attendue intercepté au niveau de l'annotation  [ExpectedException(typeof(ArgumentOutOfRangeException))]
        }
コード例 #20
0
        public void ShouldUpdateTargetTemperatureHigh()
        {
            var thermostat = new Thermostat("");

            _deserializer.UpdateThermostatStatusFromSharedStatusResult(FakeJsonMessages.GetSharedStatusResultTempRangeMode, thermostat);

            double expectedTemperature = Math.Round(24d.CelsiusToFahrenheit());

            Assert.AreEqual(expectedTemperature, thermostat.TargetTemperatureHigh);
        }
コード例 #21
0
ファイル: Program.cs プロジェクト: wilcorook/CommandPattern
 public static void ShowStatus(Light light, Fan fan, Thermostat thermostat)
 {
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine($"Light is turned {light}");
     Console.WriteLine($"Fan is turned {fan}");
     Console.WriteLine($"Thermostat is turned {thermostat}");
     //Console.ForegroundColor = ConsoleColor.White;
     Console.ResetColor();
     Console.WriteLine("-------------------");
 }
コード例 #22
0
        public void Post([FromBody] Record rec)
        {
            Db.Save(rec);
            var source = Db.GetSource(rec.SourceId);

            if (source.Outside == false)
            {
                Thermostat.AdjustTemperature(source.Id);
            }
        }
        public void DiminuerTemperatureCasAuLimiteMinRetourExceptionTest()
        {
            // Arranger (Arrange)
            Thermostat objThermostat = new Thermostat(Thermostat.MIN_TEMPERATURE);

            //Agir (Act)
            objThermostat.DiminuerTemperature();
            //Auditer (Assert)
            // InvalidOperationException attendue intercepté au niveau de l'annotation  [ExpectedException(typeof(InvalidOperationException))]
        }
コード例 #24
0
            public async Task ShouldSetAuthorizationHeaderOnRequest()
            {
                string accessToken = "token";

                _sessionProvider.SetupGet(s => s.AccessToken).Returns(accessToken);
                var thermostat = new Thermostat("id123");
                await _webService.SetHvacModeAsync(thermostat, HvacMode.Off);

                _webHeaderCollection.VerifySet(w => w["Authorization"] = "Basic " + accessToken);
            }
コード例 #25
0
        public void CancelVacation(Thermostat thermostat)
        {
            if (attributeValues.Length != 0)
            {
                Console.Error.WriteLine($"Expected no further arguments for cancel vacation, got {attributeValues.Length}");
                Environment.Exit(1);
            }

            thermostat.CancelVacation();
        }
コード例 #26
0
        public void ShouldUpdateCurrentTemperature()
        {
            var thermostat = new Thermostat("");

            _deserializer.UpdateThermostatStatusFromSharedStatusResult(FakeJsonMessages.GetSharedStatusResult, thermostat);

            double expectedTemperature = Math.Round(21.89d.CelsiusToFahrenheit());

            Assert.AreEqual(expectedTemperature, thermostat.CurrentTemperature);
        }
        public void ConstrAvecParamCasTempInitRetourTempInitTest()
        {
            // Arranger (Arrange) Agir (Act)
            Thermostat objThermostat = new Thermostat(15);

            // Auditer (Assert)
            int ValeurAttendue  = 15;
            int valeurRetournee = objThermostat.Temperature;

            Assert.AreEqual(ValeurAttendue, valeurRetournee);
        }
        private async void sendDeviceMetaData()
        {
            DeviceProperties device     = new DeviceProperties();
            Thermostat       thermostat = new Thermostat();

            thermostat.ObjectType        = "DeviceInfo";
            thermostat.IsSimulatedDevice = false;
            thermostat.Version           = "1.0";

            device.HubEnabledState = true;
            device.DeviceID        = deviceId;
            device.Manufacturer    = "Microsoft";
            device.ModelNumber     = "Lumia950";
            device.SerialNumber    = "5849735293875";
            device.FirmwareVersion = "10";
            device.Platform        = "Windows 10";
            device.Processor       = "SnapDragon";
            device.InstalledRAM    = "3GB";
            device.DeviceState     = "normal";

            Geolocator  geolocator = new Geolocator();
            Geoposition pos        = await geolocator.GetGeopositionAsync();

            device.Latitude  = (float)pos.Coordinate.Point.Position.Latitude;
            device.Longitude = (float)pos.Coordinate.Point.Position.Longitude;

            thermostat.DeviceProperties = device;

            Command TriggerAlarm = new Command();

            TriggerAlarm.Name = "TriggerAlarm";
            CommandParameter param = new CommandParameter();

            param.Name = "Message";
            param.Type = "String";
            TriggerAlarm.Parameters = new CommandParameter[] { param };

            thermostat.Commands = new Command[] { TriggerAlarm };

            try
            {
                var msg = new Message(Serialize(thermostat));
                if (deviceClient != null)
                {
                    await deviceClient.SendEventAsync(msg);
                }
            }
            catch (System.Exception e)
            {
                Debug.Write("Exception while sending device meta data :\n" + e.Message.ToString());
            }

            Debug.Write("Sent meta data to IoT Suite\n" + hostName);
        }
        public void TemperatureGetCasTempInitRetourTempInitTest()
        {
            // Arranger (Arrange)
            Thermostat objThermostat = new Thermostat(Thermostat.TEMPERATURE_INITIALE);
            // Agir (Act)
            int valeurRetournee = objThermostat.Temperature;
            // Auditer (Assert)
            int ValeurAttendue = Thermostat.TEMPERATURE_INITIALE;

            Assert.AreEqual(ValeurAttendue, valeurRetournee);
        }
        public void ConstrAvecParamCasAuLimiteMaxRetourLimiteMaxTest()
        {
            // Arranger (Arrange) Agir (Act)
            Thermostat objThermostat = new Thermostat(Thermostat.MAX_TEMPERATURE);

            // Auditer (Assert)
            int ValeurAttendue  = Thermostat.MAX_TEMPERATURE;
            int valeurRetournee = objThermostat.Temperature;

            Assert.AreEqual(ValeurAttendue, valeurRetournee);
        }
コード例 #31
0
        public void ToString_NormalUse_ReturnsExpectedString()
        {
            // Arrange
            var thermostat = new Thermostat
                                 {
                                     Name = "TestDevice",
                                     CurrentTemp = new Measurement<float?>(10, new DateTime(2013, 01, 01, 01, 02, 03))
                                 };
            const string expectedToString = "Thermostat TestDevice, CurrentTemp = 10 (2013-01-01 01:02:03)";

            // Act
            string actualToString = thermostat.ToString();

            // Assert
            Assert.AreEqual(expectedToString, actualToString);
        }
コード例 #32
0
 public string GetThermostatState(Thermostat thermostat)
 {
     string tstate = "The {0} is set to {1}({2}), is {3} and the temp. is {4}";
     SensorReading setpoint = null;
     int level = (int)thermostat.level;
     string setMode = "unknown";
     if (level >= 99)
     {
         setMode = "comfort";
     }
     if (level == 0)
     {
         setMode = "econ";
     }
     else
     {
         setMode = "comfort";
     }
     string currentState = string.Empty;
     try
     {
         #region setpoints
         if ((thermostat.sr != null) && (thermostat.sr.Length > 0))
         {
             List<SensorReading> setpoints = thermostat.sr.ToList<SensorReading>();
             SensorReading temperature = setpoints.Find(s => (s.name.StartsWith("Temperature")));
             string state = string.Empty;
             switch (thermostat.thermostatSystemMode)
             {
                 case ThermoSystemMode.Heat:
                     setpoint = (setMode == "comfort") ? setpoints.Find(s => (s.name == "Heating1")) : setpoints.Find(s => (s.name == "EnergyHeat"));
                     break;
                 case ThermoSystemMode.Cool:
                     setpoint = (setMode == "comfort") ? setpoints.Find(s => (s.name == "Cooling1")) : setpoints.Find(s => (s.name == "EnergyCool"));
                     break;
                 case ThermoSystemMode.Off:
                     return "The " + thermostat.name + " is set to " + setMode + ", and is off, current temp. is " + thermostat.currentThermTempF;
                 case ThermoSystemMode.EnergySaveCool:
                     setpoint = setpoints.Find(s => (s.name == "EnergyHeat"));
                     break;
                 case ThermoSystemMode.EnergySaveHeat:
                     setpoint = setpoints.Find(s => (s.name == "EnergyCool"));
                     break;
                 default:
                     Console.WriteLine(thermostat.thermostatSystemMode.ToString());
                     break;
             }
         }
         #endregion
         string sysState = (thermostat.thermostatSystemState.ToString().ToUpper() == "OFF") ? "idle" : thermostat.thermostatSystemState.ToString().ToLower() + "ing";
         string t_state = String.Format(tstate, thermostat.deviceName, setMode, setpoint.value, sysState, thermostat.currentThermTempF);
         return t_state;
     }
     catch
     {
         return "Unable to retrieve " + thermostat.name + " information";
     }
 }
コード例 #33
0
 public string SetTemperature(Thermostat t, int temperature)
 {
     var service = HaService.getService(url, port);
     string setPointname = string.Empty;
     switch (t.thermostatSystemMode)
     {
         case ThermoSystemMode.Heat:
             service.setThermoSetpoint(password, t.deviceId.ToString(), "Heating1", (decimal)temperature);
             setPointname = "Heating1";
             break;
         case ThermoSystemMode.Cool:
             service.setThermoSetpoint(password, t.deviceId.ToString(), "Cooling1", (decimal)temperature);
             setPointname = "Cooling1";
             break;
         default:
             if ((DateTime.Now.Month >= 1) && (DateTime.Now.Month <= 4))
             {
                 service.setThermoSetpoint(password, t.deviceId.ToString(), "Heating1", (decimal)temperature);
                 setPointname = "Heating1";
             }
             break;
     }
     Thermostat tChanged = (Thermostat)service.getDevice(password, t.nodeId.ToString());
     return GetThermostatState(tChanged);
 }
        private async void sendDeviceMetaData()
        {
            DeviceProperties device = new DeviceProperties();
            Thermostat thermostat = new Thermostat();

            thermostat.ObjectType = "DeviceInfo";
            thermostat.IsSimulatedDevice = false;
            thermostat.Version = "1.0";

            device.HubEnabledState = true;
            device.DeviceID = deviceId;
            device.Manufacturer = "Microsoft";
            device.ModelNumber = "Lumia950";
            device.SerialNumber = "5849735293875";
            device.FirmwareVersion = "10";
            device.Platform = "Windows 10";
            device.Processor = "SnapDragon";
            device.InstalledRAM = "3GB";
            device.DeviceState = "normal";

            Geolocator geolocator = new Geolocator();
            Geoposition pos = await geolocator.GetGeopositionAsync();

            device.Latitude = (float)pos.Coordinate.Point.Position.Latitude;
            device.Longitude = (float)pos.Coordinate.Point.Position.Longitude;

            thermostat.DeviceProperties = device;

            Command TriggerAlarm = new Command();
            TriggerAlarm.Name = "TriggerAlarm";
            CommandParameter param = new CommandParameter();
            param.Name = "Message";
            param.Type = "String";
            TriggerAlarm.Parameters = new CommandParameter[] { param };

            thermostat.Commands = new Command[] { TriggerAlarm };

            try
            {
                var msg = new Message(Serialize(thermostat));
                if (deviceClient != null)
                {
                    await deviceClient.SendEventAsync(msg);
                }
            }
            catch (System.Exception e)
            {
                Debug.Write("Exception while sending device meta data :\n" + e.Message.ToString());
            }

            Debug.Write("Sent meta data to IoT Suite\n" + hostName);

        }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);
            string temperature;

            // Using C# 2.0 or later syntax.
            thermostat.OnTemperatureChange +=
                heater.OnTemperatureChanged;
            thermostat.OnTemperatureChange +=
                cooler.OnTemperatureChanged;

            Console.Write("Enter temperature: ");
            temperature = Console.ReadLine();
            thermostat.CurrentTemperature = int.Parse(temperature);
        }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);

            // Note: Use new Action(
            //       cooler.OnTemperatureChanged) if C# 1.0.
            thermostat.OnTemperatureChange +=
                heater.OnTemperatureChanged;

            thermostat.OnTemperatureChange +=
                cooler.OnTemperatureChanged;

            // Bug: Should not be allowed
            thermostat.OnTemperatureChange(42);
        }
コード例 #37
-1
        public void AddRemoveHandlerWorks()
        {
            Thermostat t = new Thermostat();

            float temp = 0;

            Thermostat.TemperatureChangeHandler T_OnTemperatureChange = (sender, newTemperature) =>
            {
                temp = newTemperature.NewTemperature;
            };
            t.OnTemperatureChange += T_OnTemperatureChange;

            t.CurrentTemperature = 12;
            Assert.AreEqual(12, temp);

            t.OnTemperatureChange -= T_OnTemperatureChange;
            t.CurrentTemperature = 20;
            Assert.AreEqual(12, temp);

        }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);
            string temperature;

            // Note: Use new Action(
            //       cooler.OnTemperatureChanged) if C# 1.0 
            thermostat.OnTemperatureChange =
                heater.OnTemperatureChanged;

            // Bug:  assignment operator overrides 
            // previous assignment.
            thermostat.OnTemperatureChange = 
                cooler.OnTemperatureChanged;

            Console.Write("Enter temperature: ");
            temperature = Console.ReadLine();
            thermostat.CurrentTemperature = int.Parse(temperature);
        }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);

            Action<float> delegate1;
            Action<float> delegate2;
            Action<float> delegate3;

            // Note: Use new Action(cooler.OnTemperatureChanged)
            // for C# 1.0 syntax.
            delegate1 = heater.OnTemperatureChanged;
            delegate2 = cooler.OnTemperatureChanged;

            Console.WriteLine("Combine delegates using + operator:");
            delegate3 = delegate1 + delegate2;
            delegate3(60);

            Console.WriteLine("Uncombine delegates using - operator:");
            delegate3 = delegate3 - delegate2;
            delegate3(60);
        }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);

            Action<float> delegate1;
            Action<float> delegate2;
            Action<float> delegate3;

            // use Constructor syntax for C# 1.0.
            delegate1 = heater.OnTemperatureChanged;
            delegate2 = cooler.OnTemperatureChanged;

            Console.WriteLine("Invoke both delegates:");
            delegate3 = delegate1;
            delegate3 += delegate2;
            delegate3(90);

            Console.WriteLine("Invoke only delegate2");
            delegate3 -= delegate1;
            delegate3(30);
        }
コード例 #41
-1
ファイル: Program.cs プロジェクト: kpawa/Jarvis
 private static void SubscribeToNestDeviceDataUpdates()
 {
     var thermostats = new List<Thermostat>();
     Thermostat myThermostat = new Thermostat();
     var firebaseClient = new Firebase("https://developer-api.nest.com", _accessToken);
     var response = firebaseClient.GetStreaming("devices",
         //changed: (s, args) => UpdatedItem(args)
             changed: (s, e) => {
                /* if (e.Path.EndsWith("name"))
                     //myThermostat.name = e.Data;
                     Console.WriteLine("Name: {0}.", e.Data);
                 if (e.Path.Contains("last_connection"))
                     //myThermostat.last_connection = e.Data;
                     Console.WriteLine("Last connection: {0}.", e.Data);
                 if (e.Path.Contains("ambient_temperature_f"))
                     //myThermostat.ambient_temperature_f = e.Data;
                     Console.WriteLine("Current temperature: {0}.", e.Data);
                 if (e.Path.Contains("target_temperature_f"))
                     //myThermostat.target_temperature_f = e.Data;
                     Console.WriteLine("Target temperature: {0}.", e.Data);
                 if (e.Path.Contains("humidity"))
                     //myThermostat.Humidity = e.Data;
                     Console.WriteLine("Humidity: {0}.", e.Data);
                 if (e.Path.Contains("hvac_state"))
                     //myThermostat.hvac_state = e.Data;
                     Console.WriteLine("Current mode: {0}.", e.Data);
                 //thermostats.Add(myThermostat);
                 var JSON = JsonConvert.SerializeObject(e.Data);
                 //Console.WriteLine(JSON);
                 */
                 var JSON = JsonConvert.SerializeObject(e.Data);
                 Console.WriteLine(JSON);
                 //Console.WriteLine(e.Path.Remove(0, 54) + "-" + e.Data);
             }
 );
     Console.WriteLine("Change the current temperature of the Nest Thermostat in the Nest Developer Chrome Extension to see the real-time updates.");
 }
        public static void Main()
        {
            Thermostat thermostat = new Thermostat();
            Heater heater = new Heater(60);
            Cooler cooler = new Cooler(80);
            string temperature;

            // Using C# 2.0 or later syntax.
            thermostat.OnTemperatureChange +=
                heater.OnTemperatureChanged;
            // Using C# 3.0.  Change to anonymous method
            // if using C# 2.0
            thermostat.OnTemperatureChange +=
                (newTemperature) =>
                    {
                        throw new InvalidOperationException();
                    };
            thermostat.OnTemperatureChange +=
                cooler.OnTemperatureChanged;

            Console.Write("Enter temperature: ");
            temperature = Console.ReadLine();
            thermostat.CurrentTemperature = int.Parse(temperature);
        }