Skip to content

Instantly share code, notes, and snippets.

View andreas-nesheim's full-sized avatar

Andreas Nesheim andreas-nesheim

View GitHub Profile
var command = new LightCommand { Brightness = 120 };
await client.SendCommandAsync(command);
var command = new LightCommand { On = false };
private async void Button_Clicked(object sender, EventArgs e)
{
var bridgeIP = "XXX.XXX.XX.XX";
var appKey = "abcdefghijklmnopqrstuvwxyz1234567890";
ILocalHueClient client = new LocalHueClient(bridgeIP);
client.Initialize(appKey);
var command = new LightCommand { Brightness = 120 };
await client.SendCommandAsync(command);
private readonly string access_key = "XXXXXXXXXXXXXXXXXXXXX";
private readonly string secret_token = "XXXXXXXXXXXXXXXXXXXXX";
private readonly HttpClient httpClient = new HttpClient();
private readonly StringContent stringData = new StringContent(string.Empty);
public MillheatClient()
{
httpClient.BaseAddress = new Uri("https://api.millheat.com/");
}
public async Task<string> GetAuthorizationCode()
{
httpClient.DefaultRequestHeaders.Add("access_key", access_key);
httpClient.DefaultRequestHeaders.Add("secret_token", secret_token);
var response = await httpClient.PostAsync("share/applyAuthCode", stringData);
var result = await response.Content.ReadAsStringAsync();
var jsonResult = JsonSerializer.Deserialize<ApplyAuthCodeResponse>(result);
return jsonResult.Data.AuthorizationCode;
}
public async Task<string> GetAccessToken(string authCode)
{
httpClient.DefaultRequestHeaders.Remove("access_key");
httpClient.DefaultRequestHeaders.Remove("secret_token");
httpClient.DefaultRequestHeaders.Add("authorization_code", authCode);
var requestUrl = $"share/applyAccessToken?password={Constants.Password}&username={Constants.Username}";
var response = await httpClient.PostAsync(requestUrl, stringData);
var result = await response.Content.ReadAsStringAsync();
public async Task<Home> GetHome(string accessToken)
{
httpClient.DefaultRequestHeaders.Remove("authorization_code");
httpClient.DefaultRequestHeaders.Add("access_token", accessToken);
var requestUrl = $"uds/selectHomeList";
var response = await httpClient.PostAsync(requestUrl, stringData);
var result = await response.Content.ReadAsStringAsync();
var jsonResult = JsonSerializer.Deserialize<SelectHomeListResponse>(result);
public async Task<Room> GetRoom(Home home)
{
var requestUrl = $"uds/selectRoombyHome?homeId={home.homeId}";
var response = await httpClient.PostAsync(requestUrl, stringData);
var result = await response.Content.ReadAsStringAsync();
var jsonResult = JsonSerializer.Deserialize<SelectRoombyHomeResponse>(result);
return jsonResult.data.roomList.First();
}
public async Task<Device> GetDevice(Room room)
{
var requestUrl = $"uds/selectDevicebyRoom?roomId={room.roomId}";
var response = await httpClient.PostAsync(requestUrl, stringData);
var result = await response.Content.ReadAsStringAsync();
var jsonResult = JsonSerializer.Deserialize<SelectDevicebyRoomResponse>(result);
return jsonResult.data.deviceList.First();
}
public async Task SetDevice(Device device, int temperature, int operation, int status)
{
var requestUrl = $"uds/deviceControlForOpenApi?deviceId={device.deviceId}&holdTemp={temperature}&operation={operation}&status={status}";
var response = await httpClient.PostAsync(requestUrl, stringData);
var result = await response.Content.ReadAsStringAsync();
}