public void Send(DeviceReadings deviceReadings) { var config = new Config(); var hgClient = new HostedGraphiteService(); hgClient.ActivateForUse(config.GraphiteApiKey); hgClient.Send("humidity", Convert.ToSingle(deviceReadings.CurrentHumidity)); hgClient.Send("temperature", Convert.ToSingle(deviceReadings.CurrentTemp)); hgClient.Send("target_temperature", Convert.ToSingle(deviceReadings.TargetTemp)); hgClient.Send("heating_on", deviceReadings.HeatState ? 1 : 0); hgClient.Send("auto_away", deviceReadings.AutoAway); if (config.SendRandom) { Random rnd = new Random(); hgClient.Send("random", rnd.Next(1, 100)); } Console.WriteLine("Tracked on Graphite"); }
private DeviceReadings GetReadings(string username, string password) { var nestClient = new NestClient(username, password); nestClient.Authenticate().Wait(); var devicesTask = nestClient.GetDevices(); devicesTask.Wait(); dynamic result = devicesTask.Result; var devices = result.device; Type devicesType = devices.GetType(); var devicesFirstProp = devicesType.GetProperties().First(x => x.Name == "First"); dynamic firstDevice = devicesFirstProp.GetValue(devices).Value; var shareds = result.shared; Type sharedType = shareds.GetType(); var sharedFirstProp = sharedType.GetProperties().First(x => x.Name == "First"); dynamic firstShared = sharedFirstProp.GetValue(shareds).Value; double currentHumidity = firstDevice.current_humidity; double currentTemp = firstShared.current_temperature; double targetTemp = firstShared.target_temperature; int autoAway = firstShared.auto_away; bool heatState = firstShared.hvac_heater_state == "true"; Console.WriteLine(heatState); var readings = new DeviceReadings() { CurrentHumidity = currentHumidity, CurrentTemp = currentTemp, TargetTemp = targetTemp, AutoAway = autoAway, HeatState = heatState, }; return(readings); }
private DeviceReadings GetReadings(string username, string password) { var nestClient = new NestClient(username, password); nestClient.Authenticate().Wait(); var devicesTask = nestClient.GetDevices(); devicesTask.Wait(); dynamic result = devicesTask.Result; var devices = result.device; Type devicesType = devices.GetType(); var devicesFirstProp = devicesType.GetProperties().First(x => x.Name == "First"); dynamic firstDevice = devicesFirstProp.GetValue(devices).Value; var shareds = result.shared; Type sharedType = shareds.GetType(); var sharedFirstProp = sharedType.GetProperties().First(x => x.Name == "First"); dynamic firstShared = sharedFirstProp.GetValue(shareds).Value; double currentHumidity = firstDevice.current_humidity; double currentTemp = firstShared.current_temperature; double targetTemp = firstShared.target_temperature; int autoAway = firstShared.auto_away; bool heatState = firstShared.hvac_heater_state == "true"; Console.WriteLine(heatState); var readings = new DeviceReadings() { CurrentHumidity = currentHumidity, CurrentTemp = currentTemp, TargetTemp = targetTemp, AutoAway = autoAway, HeatState = heatState, }; return readings; }