Subversion Repositories HomeAutomation

Rev

Details | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
1765 linlun 1
 
2
Rotary_ModuleNames    = [ "Rotary","RotaryHex"];
3
Rotary_Aliases        = function() { return Module_GetAliasNames(Rotary_ModuleNames); };
4
Rotary_AvailableIds   = function() { return Module_GetAvailableIds(Rotary_ModuleNames); };
5
 
6
 
7
function Rotary_OnMessage(module_name, module_id, command, variables)
8
{
9
 
10
    if (in_array(Rotary_ModuleNames, module_name))
11
    {
12
        var aliases_data = Module_LookupAliases({
13
            "module_name" : module_name,
14
            "module_id"   : module_id,
15
            "group"       : false
16
        });
17
 
18
        switch (command)
19
        {
20
            case "Rotary_Switch":
21
            {
22
                for (var alias_name in aliases_data)
23
                {
24
                    if (aliases_data[alias_name]["specific"]["SwitchId"] != variables["SwitchId"])
25
                    {
26
                        continue;
27
                    }
28
                    var last_value = {};
29
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
30
 
31
                    if (last_value_string)
32
                    {
33
                        last_value = eval("(" + last_value_string + ")");
34
                    }
35
 
36
                    last_value["Direction"] = { "value" : variables["Direction"], "timestamp" : get_time() };
37
                    last_value["Steps"] = { "value" : variables["Steps"], "timestamp" : get_time() };
38
                    last_value["Position"] = { "value" : variables["Position"], "timestamp" : get_time() };
39
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
40
                }
41
 
42
                break;
43
            }
44
            case "Button":
45
            {
46
                for (var alias_name in aliases_data)
47
                {
48
                    if (aliases_data[alias_name]["specific"]["SwitchId"] != variables["SwitchId"])
49
                    {
50
                        continue;
51
                    }
52
 
53
                    var last_value = {};
54
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
55
 
56
                    if (last_value_string)
57
                    {
58
                        last_value = eval("(" + last_value_string + ")");
59
                    }
60
 
61
                    last_value["Status"] = { "value" : variables["Status"], "timestamp" : get_time() };
62
 
63
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
64
                }
65
 
66
                break;
67
            }
68
        }
69
    }
70
}
71
Module_RegisterToOnMessage("all", Rotary_OnMessage);