An error occurred while loading the file. Please try again.
-
roman.koehler authored83369274
/*
{
answer:"special",
triggers:{zone-scene:[{group:1,scene:1,name:[{de_DE:'dingsa'}]},{group:0,scene:2},{zone:0,scene:3}],
device:[{id:0,name:[{de_DE:'dingsa'}]}], // device click events
sensor-event:[{id:'.0',value:'inactive',name:[{de_DE:'dingsa'}]}], // akm event
device-event:[{id:'eventXY',name:[{de_DE:'dingsa'}]}]}, // sensor event
actions:{ zone-action:[{scene:1,group:1,name:[{de_DE:'dingsa'}]},{group:0,scene:2},{zone:0,scene:3}]
device-action:[{scene:1,name:[{de_DE:'dingsa'}]},
{outputValue:1,name:[{de_DE:'dingsa'}]}]
},
conditions:{
sensor-event:[{}]}
}*/
var lWarn = {
logln : function(o) {
}
};
var lInfo = {
logln : function(o) {
}
};
var LOGFILE_NAME = "sr-config.log";
lWarn = new Logger(LOGFILE_NAME);
lInfo = new Logger(LOGFILE_NAME)
Property.setSavedProperty = function(path, value) {
Property.setProperty(path, value);
Property.setFlag(path, 'ARCHIVE', true);
}
var Utf8 = {
// public method for url encoding
encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// public method for url decoding
decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
};
try {
if (raisedEvent.name=='system-addon-scene-responder.registerSpecialDSIDDevices') {
lInfo.logln('system-addon-scene-responder.registerSpecialDSIDDevices');
for (var sKey in raisedEvent.parameter) {
lInfo.logln('type ' + sKey + ' : ' + raisedEvent.parameter[sKey]);
}
if (raisedEvent.parameter._context!=null)
if (raisedEvent.parameter.values!=null) {
lInfo.logln('context ' + raisedEvent.parameter._context);
lInfo.logln('values ' + raisedEvent.parameter.values);
var context=raisedEvent.parameter._context;
lInfo.logln('removing context ' + context);
if (Property.getNode('specialDSIDAction')!=null) {
var oArray=Property.getNode('specialDSIDAction').getChildren();
for (var iIndex=0;iIndex<oArray.length;iIndex++) {
lInfo.logln('checking for ' + oArray[iIndex].getChild('context').getValue() + " in " + oArray[iIndex].getName());
if (oArray[iIndex].getChild('context').getValue()==context)
Property.getNode('specialDSIDAction').removeChild(oArray[iIndex].getName());
}
}
var oArray=JSON.parse(raisedEvent.parameter.values);
for (var jIndex=0;jIndex<oArray.length;jIndex++) {
lInfo.logln('adding ' + jIndex + ' from ' +oArray.length);
var basePath='specialDSIDAction/' + oArray[jIndex].dsid;
if (Property.getNode('specialDSIDAction')!=null)
Property.getNode('specialDSIDAction').removeChild(oArray[jIndex].dsid)
Property.setSavedProperty(basePath+'/context',context);
var DataObject=oArray[jIndex];
if (DataObject.actions != null) {
if (DataObject.actions['zone-action'] != null) {
for (var iIndex = 0; iIndex < DataObject.actions['zone-action'].length; iIndex++) {
var oDataObject = DataObject.actions['zone-action'][iIndex];
for ( var sKey in oDataObject.name) {
Property.setSavedProperty(basePath + '/actions/zoneAction/' + iIndex + '/name/' + sKey, Utf8.encode(oDataObject.name[sKey]));
}
Property.setSavedProperty(basePath + '/actions/zoneAction/' + iIndex + '/scene', oDataObject.scene);
if (oDataObject.zone != null)
Property.setSavedProperty(basePath + '/actions/zoneAction/' + iIndex + '/zone', oDataObject.zone);
if (oDataObject.group != null)
Property.setSavedProperty(basePath + '/actions/zoneAction/' + iIndex + '/group', oDataObject.group);
}