static void Main(string[] args) { Console.WriteLine("RadioThermostat"); Uri uri = GetUri("http://192.168.88.100"); //Console.WriteLine(uri.AbsoluteUri); //Console.WriteLine(uri.Scheme); //Console.WriteLine(uri.Host); //Console.WriteLine(uri.AbsolutePath); RadioThermostat.uri = new Uri("http://192.168.88.100"); Hvac hvac = Task.Run(() => RadioThermostat.GetHvac()).Result; Info info = Task.Run(() => RadioThermostat.GetInfo()).Result; Mode mode = Task.Run(() => RadioThermostat.GetMode()).Result; Model model = Task.Run(() => RadioThermostat.GetModel()).Result; Name name = Task.Run(() => RadioThermostat.GetName()).Result; Network network = Task.Run(() => RadioThermostat.GetNetwork()).Result; Console.WriteLine(JsonConvert.SerializeObject(hvac, Formatting.None)); Console.WriteLine(JsonConvert.SerializeObject(info, Formatting.None)); Console.WriteLine(JsonConvert.SerializeObject(mode, Formatting.None)); Console.WriteLine(JsonConvert.SerializeObject(model, Formatting.None)); Console.WriteLine(JsonConvert.SerializeObject(name, Formatting.None)); Console.WriteLine(JsonConvert.SerializeObject(network, Formatting.None)); Console.ReadKey(); }
private async Task CreateDbFromModel(RmsConfigModel model) { RmsConfig rms = new RmsConfig { Name = model.RmsDeviceInterface.name, Location = model.RmsDeviceInterface.location, IpAddress = model.RmsDeviceInterface.localIp, MacAddress = model.RmsDeviceInterface.macAddress }; foreach (RmsNode node in model.nodes) { foreach (RmsNodeDevice nodeDevice in node.devices) { DeviceType deviceType = ParseLightType(nodeDevice.type); if (deviceType == DeviceType.LightOnOff) { Light newLight = new Light { Location = node.location, Type = deviceType, MAC = nodeDevice.macAddress, CurrentStatus = nodeDevice.status }; newLight.Hooks.Add(new WebHook { ActivationCommand = RmsCommand.LightsOn, HookUrl = BuildHookUrl(nodeDevice, model.RmsDeviceInterface.localIp), Method = "POST", Body = BuildHookActiveBody(node, newLight) }); newLight.Hooks.Add(new WebHook { ActivationCommand = RmsCommand.LightsOff, HookUrl = BuildHookUrl(nodeDevice, model.RmsDeviceInterface.localIp), Method = "POST", Body = BuildHookInactiveBody(node, newLight) }); rms.Lights.Add(newLight); } if (deviceType == DeviceType.Hvac) { Hvac newHvac = new Hvac { Location = node.location, MAC = nodeDevice.macAddress }; double currentTemp; if (double.TryParse(nodeDevice.currentTemperature, out currentTemp)) { newHvac.CurrentTemperature = currentTemp; } double setpointTemp; if (double.TryParse(nodeDevice.setTemperature, out setpointTemp)) { newHvac.SetpointTemperature = setpointTemp; } newHvac.Hooks.Add(new WebHook { ActivationCommand = RmsCommand.HvacSetTemperature, HookUrl = BuildHookUrl(nodeDevice, model.RmsDeviceInterface.localIp), Method = "POST", Body = BuildHookSetTemperatureBody(node, newHvac) }); rms.Hvacs.Add(newHvac); } } } _context.RmsList.Add(rms); _context.SaveChanges(); }
private static List <RmsNode> GetBodySetTemperature(RmsNode node, Hvac device) { return(new List <RmsNode> { new RmsNode { macAddress = node.macAddress, devices = new List <RmsNodeDevice> { new RmsNodeDevice { macAddress = device.MAC, setTemperature = "{setTemperature}" } } } }); }
private string BuildHookSetTemperatureBody(RmsNode node, Hvac hvac) { List <RmsNode> nodes = GetBodySetTemperature(node, hvac); return(JsonConvert.SerializeObject(new { nodes })); }