Skip to content

Commit

Permalink
Initial commit for controlling color. Fixes #22 (#25)
Browse files Browse the repository at this point in the history
* Initial commit for controlling color. Fixes #22

Signed-off-by: Dan Cunningham <[email protected]>

* Few minor fixes

Signed-off-by: Dan Cunningham <[email protected]>
  • Loading branch information
digitaldan authored Apr 27, 2017
1 parent 6b5bb75 commit 00f444f
Showing 1 changed file with 42 additions and 1 deletion.
43 changes: 42 additions & 1 deletion oh2.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ exports.handleControl = function (event, context) {
case 'DecrementPercentageRequest':
adjustPercentage(context, event);
break;
case 'SetColorRequest':
adjustColor(context, event);
break;
}
};

Expand Down Expand Up @@ -206,6 +209,43 @@ function adjustPercentage(context, event) {
}
}

/**
* Color control
*/
function adjustColor(context, event) {
var success = function (response) {
var header = {
messageId: event.header.messageId,
name: event.header.name.replace("Request", "Confirmation"),
namespace: event.header.namespace,
payloadVersion: event.header.payloadVersion
};

var payload = {
achievedState : {
color : event.payload.color
}
};

var result = {
header: header,
payload: payload
};

context.succeed(result);
};

var failure = function (error) {
context.done(null, utils.generateControlError(event.header.messageId, event.header.name, 'DependentServiceUnavailableError', error.message));
};

var h = event.payload.color.hue;
var s = Math.round(event.payload.color.saturation * 100);
var b = Math.round(event.payload.color.brightness * 100);
var state = h + ',' + s + ',' + b;
rest.postItemCommand(event.payload.accessToken, event.payload.appliance.applianceId, state, success, failure);
}

/**
* Retrives the current temperature of a Thermostat or standalone currentTemperature tagged item
**/
Expand Down Expand Up @@ -556,7 +596,8 @@ function getSwitchableActions(item) {
"decrementPercentage",
"setPercentage",
"turnOn",
"turnOff"
"turnOff",
"setColor"
];
} else if (item.type === "Rollershutter" ||
(item.type === "Group" && item.groupType && item.groupType === "Rollershutter")) {
Expand Down

0 comments on commit 00f444f

Please sign in to comment.