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");
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }