Merge branch 'nfarina/master' into z-way-server-2

This commit is contained in:
S'pht'Kr
2015-09-02 06:28:02 +02:00

View File

@@ -33,8 +33,7 @@ MiLight.prototype = {
if (powerOn) {
light.sendCommands(commands[this.type].on(this.zone));
this.log("Setting power state to on");
}
else {
} else {
light.sendCommands(commands[this.type].off(this.zone));
this.log("Setting power state to off");
}
@@ -42,8 +41,19 @@ MiLight.prototype = {
},
setBrightness: function(level, callback) {
if (level <= 2 && (this.type == "rgbw" || this.type == "white")) {
// If setting brightness to 2 or lower, instead set night mode for lamps that support it
this.log("Setting night mode", level);
light.sendCommands(commands[this.type].off(this.zone));
// Not sure if this timing is going to work or not? It's supposed to be 100ms after the off command
light.sendCommands(commands[this.type].nightMode(this.zone));
} else {
this.log("Setting brightness to %s", level);
// Send on command to ensure we're addressing the right bulb
light.sendCommands(commands[this.type].on(this.zone));
// If this is an rgbw lamp, set the absolute brightness specified
if (this.type == "rgbw") {
light.sendCommands(commands.rgbw.brightness(level));
@@ -51,17 +61,26 @@ MiLight.prototype = {
// If this is an rgb or a white lamp, they only support brightness up and down.
// Set brightness up when value is >50 and down otherwise. Not sure how well this works real-world.
if (level >= 50) {
if (this.type == "white" && level == 100) {
// But the white lamps do have a "maximum brightness" command
light.sendCommands(commands.white.maxBright(this.zone));
} else {
light.sendCommands(commands[this.type].brightUp());
}
} else {
light.sendCommands(commands[this.type].brightDown());
}
}
}
callback();
},
setHue: function(value, callback) {
this.log("Setting hue to %s", value);
// Send on command to ensure we're addressing the right bulb
light.sendCommands(commands[this.type].on(this.zone));
if (this.type == "rgbw") {
if (value == 0) {
light.sendCommands(commands.rgbw.whiteMode(this.zone));