Merge remote-tracking branch 'nfarina/master' into HaveDimmer

This commit is contained in:
EddyK69
2015-08-27 12:46:08 +02:00
2 changed files with 36 additions and 19 deletions

View File

@@ -41,7 +41,9 @@
"platform": "Domoticz", "platform": "Domoticz",
"name": "Domoticz", "name": "Domoticz",
"server": "127.0.0.1", "server": "127.0.0.1",
"port": "8005" "port": "8080",
"roomid": 0,
"loadscenes": 1
}, },
{ {
"platform": "PhilipsHue", "platform": "PhilipsHue",

View File

@@ -8,6 +8,11 @@
// - Added support for Scenes // - Added support for Scenes
// - Sorting device names // - Sorting device names
// //
// 26 August 2015 [EddyK69]
// - Added parameter in config.json: 'loadscenes' for enabling/disabling loading scenes
// - Fixed issue with dimmer-range; was 0-100, should be 0-16
//
//
// Domoticz JSON API required // Domoticz JSON API required
// https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's#Lights_and_switches // https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's#Lights_and_switches
// //
@@ -18,7 +23,8 @@
// "name": "Domoticz", // "name": "Domoticz",
// "server": "127.0.0.1", // "server": "127.0.0.1",
// "port": "8080", // "port": "8080",
// "roomid": 123 (0=no roomplan) // "roomid": 123, (0=no roomplan)
// "loadscenes": 1 (0=disable scenes)
// } // }
// ], // ],
// //
@@ -47,6 +53,10 @@ function DomoticzPlatform(log, config){
if (typeof config["roomid"] != 'undefined') { if (typeof config["roomid"] != 'undefined') {
this.roomid = config["roomid"]; this.roomid = config["roomid"];
} }
this.loadscenes = 1;
if (typeof config["loadscenes"] != 'undefined') {
this.loadscenes = config["loadscenes"];
}
} }
function sortByKey(array, key) { function sortByKey(array, key) {
@@ -120,6 +130,7 @@ DomoticzPlatform.prototype = {
}); });
} }
//Get Scenes //Get Scenes
if (this.loadscenes == 1) {
asyncCalls++; asyncCalls++;
request.get({ request.get({
url: this.urlForQuery("type=scenes"), url: this.urlForQuery("type=scenes"),
@@ -140,6 +151,7 @@ DomoticzPlatform.prototype = {
}); });
} }
} }
}
function DomoticzAccessory(log, platform, IsScene, idx, name, HaveDimmer, MaxDimLevel, HaveRGB) { function DomoticzAccessory(log, platform, IsScene, idx, name, HaveDimmer, MaxDimLevel, HaveRGB) {
// device info // device info
@@ -165,6 +177,9 @@ DomoticzAccessory.prototype = {
url = this.platform.urlForQuery("type=command&param=setcolbrightnessvalue&idx=" + this.idx + "&hue=" + value + "&brightness=100" + "&iswhite=false"); url = this.platform.urlForQuery("type=command&param=setcolbrightnessvalue&idx=" + this.idx + "&hue=" + value + "&brightness=100" + "&iswhite=false");
} }
else if (c == "setLevel") { else if (c == "setLevel") {
//Range should be 0-16 instead of 0-100
//See http://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s#Set_a_dimmable_light_to_a_certain_level
value = Math.round((value / 100) * 16)
url = this.platform.urlForQuery("type=command&param=switchlight&idx=" + this.idx + "&switchcmd=Set%20Level&level=" + value); url = this.platform.urlForQuery("type=command&param=switchlight&idx=" + this.idx + "&switchcmd=Set%20Level&level=" + value);
} }
else if (value != undefined) { else if (value != undefined) {