Skip to content

Latest commit

 

History

History
83 lines (57 loc) · 2.75 KB

README.md

File metadata and controls

83 lines (57 loc) · 2.75 KB

Hive-API-Wrapper

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();