A simple C# wrapper for interacting with the Hive Active heathing system. This is an unoffical client and therefore is not endorsed by British Gas.
-Example usage below -
ISession hive = new Session("YOUR_LOGIN", "YOUR_PASSWORD");
hive.Login();
ITemperatureController temp = hive.TemperatureController;
//show inside temp, outside temp and weather
var currentTemp = temp.Current();
Console.WriteLine(currentTemp.inside.now);
Console.WriteLine(currentTemp.outside.now);
Console.WriteLine(currentTemp.outside.weather);
//set temperature to 20 degrees celcius
temp.Set(20);
//get temperature history for today
var temphistory = temp.History(HistoryPeriod.today);
foreach(var historyItem in temphistory.data)
{
Console.WriteLine($"{historyItem.date} = {historyItem.temperature}");
}
//get temperature history for Jan 2016
temphistory = temp.History(HistoryPeriod.thisMonth, 2016, 1);
//get temperature schedule and show temp of first schedule on Sunday
var schedule = temp.Schedule();
Console.WriteLine(schedule.days.sunday.First().temperature);
//show current control mode, example manual, off, override
var controlInfo = temp.ControlInfo();
Console.WriteLine(controlInfo.control);
//switch heating off
temp.SetControl(ControlMode.OFF);
//switch back to schedule
temp.SetControl(ControlMode.SCHEDULE);
//turn on boost
temp.SetControl(ControlMode.BOOST);
IDeviceController devices = hive.DeviceController;
//output number of devices and info about them - this will include thermostat, hub etc
var deviceInfo = devices.Details();
Console.WriteLine(deviceInfo.Count());
foreach(var device in deviceInfo)
{
Console.WriteLine($"Device {device.name} ID is {device.id} and is a {device.type}");
}
//show device events
var history = devices.EventHistory();
foreach(var @event in history.events)
{
Console.WriteLine(@event.time);
Console.WriteLine(@event.type);
}
//get history with limit of 10
devices.EventHistory(10);
//show hub details
var hub = devices.HubDetails();
Console.WriteLine(hub.name);
Console.WriteLine(hub.ip);
Console.WriteLine(hub.macAddress);
Console.WriteLine(hub.upTime);
hive.Logout();