Rev 1648 | Rev 1650 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1648 | Rev 1649 | ||
|---|---|---|---|
| Line 2... | Line 2... | ||
| 2 | Require("plugin/storage.js"); |
2 | Require("plugin/storage.js"); |
| 3 | 3 | ||
| 4 | function Module_CreateAliasAutoComplete(args) |
4 | function Module_CreateAliasAutoComplete(arg_index, args) |
| 5 | { |
5 | { |
| 6 | // args[0] == command name |
- | |
| 7 | var arg_index = args.length - 2; |
- | |
| 8 | - | ||
| 9 | if (arg_index == 0) |
6 | if (arg_index == 0) |
| 10 | { |
7 | { |
| 11 | return Module_GetAliasNames(); |
8 | return Module_GetAliasNames(); |
| 12 | } |
9 | } |
| 13 | else if (arg_index == 1) |
10 | else if (arg_index == 1) |
| 14 | { |
11 | { |
| 15 | return Module_GetNames(); |
12 | return Module_GetNames(); |
| 16 | } |
13 | } |
| 17 | else if (arg_index == 2) |
14 | else if (arg_index == 2) |
| 18 | { |
15 | { |
| 19 | return Module_GetAvailableIds([ args[ |
16 | return Module_GetAvailableIds([ args[1] ]) |
| 20 | } |
17 | } |
| 21 | 18 | ||
| 22 | return []; |
19 | return []; |
| 23 | } |
20 | } |
| 24 | 21 | ||
| 25 | function Module_CreateAlias(alias_name, module_name, module_id, specific) |
22 | function Module_CreateAlias(alias_name, module_name, module_id, specific) |
| 26 | { |
23 | { |
| - | 24 | if (arguments.length < 3) |
|
| - | 25 | { |
|
| - | 26 | Log("\033[31mNot enough parameters given.\033[0m\n"); |
|
| - | 27 | return false; |
|
| - | 28 | } |
|
| - | 29 | ||
| 27 |
|
30 | if (alias_name == "all") |
| - | 31 | { |
|
| - | 32 | Log("\033[31m\"all\" is not allowed as alias name.\033[0m\n"); |
|
| - | 33 | return false; |
|
| - | 34 | } |
|
| 28 | 35 | ||
| 29 | var specific_list = {}; |
36 | var specific_list = {}; |
| 30 | 37 | ||
| 31 | if (specific) |
38 | if (specific) |
| 32 | { |
39 | { |
| 33 | var specific_parts = split( |
40 | var specific_parts = specific.split(","); |
| 34 | 41 | ||
| 35 | // TODO: Check length |
42 | // TODO: Check length |
| 36 | 43 | ||
| 37 | for (var index in specific_parts) |
44 | for (var index in specific_parts) |
| 38 | { |
45 | { |
| 39 | var parts = split("=" |
46 | var parts = specific_parts[index].split("="); |
| 40 | 47 | ||
| 41 | // TODO: Check length |
48 | // TODO: Check length |
| 42 | 49 | ||
| 43 | specific_list[parts[0]] = parts[1]; |
50 | specific_list[parts[0]] = parts[1]; |
| 44 | } |
51 | } |
| Line 54... | Line 61... | ||
| 54 | 61 | ||
| 55 | return Storage_SetParameter("alias", alias_name, JSON.stringify(alias_data)); |
62 | return Storage_SetParameter("alias", alias_name, JSON.stringify(alias_data)); |
| 56 | } |
63 | } |
| 57 | Console_RegisterCommand(Module_CreateAlias, Module_CreateAliasAutoComplete); |
64 | Console_RegisterCommand(Module_CreateAlias, Module_CreateAliasAutoComplete); |
| 58 | 65 | ||
| 59 | function Module_CreateAliasGroupAutoComplete(args) |
66 | function Module_CreateAliasGroupAutoComplete(arg_index, args) |
| 60 | { |
67 | { |
| 61 | // args[0] == command name |
- | |
| 62 | var arg_index = args.length - 2; |
- | |
| 63 | - | ||
| 64 | if (arg_index == 0) |
68 | if (arg_index == 0) |
| 65 | { |
69 | { |
| 66 | return Module_GetAliasNames(); |
70 | return Module_GetAliasNames(); |
| 67 | } |
71 | } |
| 68 | else if (arg_index == 1) |
72 | else if (arg_index == 1) |
| 69 | { |
73 | { |
| 70 | return Module_GetNames(); |
74 | return Module_GetNames(); |
| 71 | } |
75 | } |
| 72 | else if (arg_index >= 2) |
76 | else if (arg_index >= 2) |
| 73 | { |
77 | { |
| 74 | return Module_GetAliasNames([ args[ |
78 | return Module_GetAliasNames([ args[1] ]) |
| 75 | } |
79 | } |
| 76 | 80 | ||
| 77 | return []; |
81 | return []; |
| 78 | } |
82 | } |
| 79 | 83 | ||
| 80 | function Module_CreateAliasGroup(alias_group_name, module_type, alias_name1, alias_name2) |
84 | function Module_CreateAliasGroup(alias_group_name, module_type, alias_name1, alias_name2) |
| 81 | { |
85 | { |
| 82 | if (arguments.length < 3) |
86 | if (arguments.length < 3) |
| 83 | { |
87 | { |
| 84 |
|
88 | Log("\033[31mNot enough parameters given.\033[0m\n"); |
| - | 89 | return false; |
|
| - | 90 | } |
|
| - | 91 | ||
| - | 92 | if (alias_group_name == "all") |
|
| - | 93 | { |
|
| - | 94 | Log("\033[31m\"all\" is not allowed as alias name.\033[0m\n"); |
|
| - | 95 | return false; |
|
| 85 | } |
96 | } |
| 86 | 97 | ||
| 87 | alias_group_name = arguments[0]; |
98 | alias_group_name = arguments[0]; |
| 88 | module_type = arguments[1]; |
99 | module_type = arguments[1]; |
| 89 | var aliases = []; |
100 | var aliases = []; |
| Line 92... | Line 103... | ||
| 92 | { |
103 | { |
| 93 | if (arguments[n].length > 0) |
104 | if (arguments[n].length > 0) |
| 94 | { |
105 | { |
| 95 | var aliases_data = Module_ResolveAlias(arguments[n]); |
106 | var aliases_data = Module_ResolveAlias(arguments[n]); |
| 96 | aliases.push(arguments[n]); |
107 | aliases.push(arguments[n]); |
| 97 | } |
108 | } |
| 98 | } |
109 | } |
| 99 | 110 | ||
| 100 | if (aliases.length == 0) |
111 | if (aliases.length == 0) |
| 101 | { |
112 | { |
| 102 |
|
113 | Log("\033[31mNo valid aliases were found, aborting creation of group alias.\033[0m\n"); |
| - | 114 | return false; |
|
| 103 | } |
115 | } |
| 104 | 116 | ||
| 105 | var alias_data = { |
117 | var alias_data = { |
| 106 | "group" : true, |
118 | "group" : true, |
| 107 | "name" : alias_group_name, |
119 | "name" : alias_group_name, |
| Line 133... | Line 145... | ||
| 133 | aliases_data[name] = aliases_data_sub[name]; |
145 | aliases_data[name] = aliases_data_sub[name]; |
| 134 | } |
146 | } |
| 135 | } |
147 | } |
| 136 | } |
148 | } |
| 137 | else |
149 | else |
| 138 | { |
150 | { |
| 139 | if (in_array(filter_module_names, alias_data["module_name"])) |
151 | if (in_array(filter_module_names, alias_data["module_name"])) |
| 140 | { |
152 | { |
| 141 | aliases_data[alias_name] = alias_data; |
153 | aliases_data[alias_name] = alias_data; |
| 142 | } |
154 | } |
| 143 | } |
155 | } |
| Line 211... | Line 223... | ||
| 211 | return result_list; |
223 | return result_list; |
| 212 | } |
224 | } |
| 213 | 225 | ||
| 214 | function Module_GetNames() |
226 | function Module_GetNames() |
| 215 | { |
227 | { |
| 216 | return [ "Dimmer230", "irTransmit", "irReceive", "SimpleDTMF", "BusVoltage" ]; |
228 | return [ "Dimmer230", "irTransmit", "irReceive", "SimpleDTMF", "BusVoltage", "DS18x20", "FOST02" ]; |
| 217 | } |
229 | } |
| 218 | 230 | ||
| 219 | function Module_SendMessage(module_name, module_id, command, variables) |
231 | function Module_SendMessage(module_name, module_id, command, variables) |
| 220 | { |
232 | { |
| 221 | var args = []; |
233 | var args = []; |
| Line 254... | Line 266... | ||
| 254 | } |
266 | } |
| 255 | 267 | ||
| 256 | function Module_RegisterToOnMessage(alias_name, callback) |
268 | function Module_RegisterToOnMessage(alias_name, callback) |
| 257 | { |
269 | { |
| 258 | if (!Module_OnMessageFunctions[alias_name]) |
270 | if (!Module_OnMessageFunctions[alias_name]) |
| 259 | { |
271 | { |
| 260 | Module_OnMessageFunctions[alias_name] = []; |
272 | Module_OnMessageFunctions[alias_name] = []; |
| 261 | } |
273 | } |
| 262 | 274 | ||
| 263 | Module_OnMessageFunctions[alias_name].push(callback); |
275 | Module_OnMessageFunctions[alias_name].push(callback); |
| 264 | } |
276 | } |
| Line 296... | Line 308... | ||
| 296 | { |
308 | { |
| 297 | for (var n in Module_OnMessageFunctions[alias_name]) |
309 | for (var n in Module_OnMessageFunctions[alias_name]) |
| 298 | { |
310 | { |
| 299 | Module_OnMessageFunctions[alias_name][n](alias_name, command, variables); |
311 | Module_OnMessageFunctions[alias_name][n](alias_name, command, variables); |
| 300 | } |
312 | } |
| - | 313 | } |
|
| - | 314 | } |
|
| - | 315 | ||
| - | 316 | if (Module_OnMessageFunctions["all"]) |
|
| - | 317 | { |
|
| - | 318 | for (var n in Module_OnMessageFunctions["all"]) |
|
| - | 319 | { |
|
| - | 320 | Module_OnMessageFunctions["all"][n](id_parts[0], id_parts[1], command, variables); |
|
| 301 | } |
321 | } |
| 302 | } |
322 | } |
| 303 | } |
323 | } |
| 304 | 324 | ||
| 305 | function Module_OnChange(full_id, available) |
325 | function Module_OnChange(full_id, available) |
| Line 316... | Line 336... | ||
| 316 | for (var alias_name in aliases_data) |
336 | for (var alias_name in aliases_data) |
| 317 | { |
337 | { |
| 318 | var ok = true; |
338 | var ok = true; |
| 319 | 339 | ||
| 320 | if (aliases_data[alias_name]["specific"]) |
340 | if (aliases_data[alias_name]["specific"]) |
| 321 | { |
341 | { |
| 322 | var ok = true; |
342 | var ok = true; |
| 323 | 343 | ||
| 324 | for (var name in variables) |
344 | for (var name in variables) |
| 325 | { |
345 | { |
| 326 | if (aliases_data[alias_name]["specific"][name] && aliases_data[alias_name]["specific"][name] != variables[name]) |
346 | if (aliases_data[alias_name]["specific"][name] && aliases_data[alias_name]["specific"][name] != variables[name]) |
| Line 330... | Line 350... | ||
| 330 | } |
350 | } |
| 331 | } |
351 | } |
| 332 | } |
352 | } |
| 333 | 353 | ||
| 334 | if (Module_OnChangeFunctions[alias_name] && ok) |
354 | if (Module_OnChangeFunctions[alias_name] && ok) |
| 335 | { |
355 | { |
| 336 | for (var n in Module_OnChangeFunctions[alias_name]) |
356 | for (var n in Module_OnChangeFunctions[alias_name]) |
| 337 | { |
357 | { |
| 338 | Module_OnChangeFunctions[alias_name][n](alias_name, available); |
358 | Module_OnChangeFunctions[alias_name][n](alias_name, available); |
| 339 | } |
359 | } |
| - | 360 | } |
|
| - | 361 | } |
|
| - | 362 | ||
| - | 363 | if (Module_OnChangeFunctions["all"]) |
|
| - | 364 | { |
|
| - | 365 | for (var n in Module_OnChangeFunctions["all"]) |
|
| - | 366 | { |
|
| - | 367 | Module_OnChangeFunctions["all"][n](id_parts[0], id_parts[1], available); |
|
| 340 | } |
368 | } |
| 341 | } |
369 | } |
| 342 | } |
370 | } |