Subversion Repositories HomeAutomation

Rev

Rev 1765 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1765 Rev 2027
1
 
1
 
2
//Require("plugin/module.js");
2
//Require("plugin/module.js");
3
 
3
 
4
Power_ModuleNames    = [ "power" ];
4
Power_ModuleNames    = [ "power", "heatPower" ];
5
Power_Intervals      = function() { return [ 1, 5, 10, 15, 20 ]; };
5
Power_Intervals      = function() { return [ 1, 5, 10, 15, 20 ]; };
6
Power_Energy         = function() { return [ 0, 500, 1000, 5000, 10000 ]; };
6
Power_Energy         = function() { return [ 0, 500, 1000, 5000, 10000 ]; };
7
Power_Aliases        = function() { return Module_GetAliasNames(Power_ModuleNames); };
7
Power_Aliases        = function() { return Module_GetAliasNames(Power_ModuleNames); };
8
Power_AvailableIds   = function() { return Module_GetAvailableIds(Power_ModuleNames); };
8
Power_AvailableIds   = function() { return Module_GetAvailableIds(Power_ModuleNames); };
9
 
9
 
10
function Power_SetEnergy(alias_name, energy)
10
function Power_SetEnergy(alias_name, energy)
11
{
11
{
12
    if (arguments.length < 2)
12
    if (arguments.length < 2)
13
    {
13
    {
14
        Log("\033[31mNot enough parameters given.\033[0m\n");
14
        Log("\033[31mNot enough parameters given.\033[0m\n");
15
        return false;
15
        return false;
16
    }
16
    }
17
   
17
   
18
    var aliases_data = Module_ResolveAlias(alias_name, Power_ModuleNames);
18
    var aliases_data = Module_ResolveAlias(alias_name, Power_ModuleNames);
19
    var found = false;
19
    var found = false;
20
   
20
   
21
    for (var name in aliases_data)
21
    for (var name in aliases_data)
22
    {
22
    {
23
        var variables = {"Energy"     : energy };
23
        var variables = {"Energy"     : energy };
24
       
24
       
25
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "setEnergy", variables))
25
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "setEnergy", variables))
26
        {
26
        {
27
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
27
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
28
        }
28
        }
29
        else
29
        else
30
        {
30
        {
31
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
31
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
32
        }
32
        }
33
       
33
       
34
        found = true;
34
        found = true;
35
    }
35
    }
36
   
36
   
37
    if (!found)
37
    if (!found)
38
    {
38
    {
39
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
39
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
40
        return false;
40
        return false;
41
    }
41
    }
42
   
42
   
43
    return true;
43
    return true;
44
}
44
}
45
Console_RegisterCommand(Power_SetEnergy, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Power_Aliases(), Power_Energy()); });
45
Console_RegisterCommand(Power_SetEnergy, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Power_Aliases(), Power_Energy()); });
46
 
46
 
47
function Power_SetReportInterval(alias_name, interval)
47
function Power_SetReportInterval(alias_name, interval)
48
{
48
{
49
    if (arguments.length < 2)
49
    if (arguments.length < 2)
50
    {
50
    {
51
        Log("\033[31mNot enough parameters given.\033[0m\n");
51
        Log("\033[31mNot enough parameters given.\033[0m\n");
52
        return false;
52
        return false;
53
    }
53
    }
54
   
54
   
55
    var aliases_data = Module_ResolveAlias(alias_name, Power_ModuleNames);
55
    var aliases_data = Module_ResolveAlias(alias_name, Power_ModuleNames);
56
    var found = false;
56
    var found = false;
57
   
57
   
58
    for (var name in aliases_data)
58
    for (var name in aliases_data)
59
    {
59
    {
60
        var variables = {"Time"     : interval };
60
        var variables = {"Time"     : interval };
61
       
61
       
62
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
62
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
63
        {
63
        {
64
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
64
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
65
        }
65
        }
66
        else
66
        else
67
        {
67
        {
68
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
68
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
69
        }
69
        }
70
       
70
       
71
        found = true;
71
        found = true;
72
    }
72
    }
73
   
73
   
74
    if (!found)
74
    if (!found)
75
    {
75
    {
76
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
76
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
77
        return false;
77
        return false;
78
    }
78
    }
79
   
79
   
80
    return true;
80
    return true;
81
}
81
}
82
Console_RegisterCommand(Power_SetReportInterval, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Power_Aliases(), Power_Intervals()); });
82
Console_RegisterCommand(Power_SetReportInterval, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Power_Aliases(), Power_Intervals()); });
83
 
83
 
84
function Power_OnMessage(module_name, module_id, command, variables)
84
function Power_OnMessage(module_name, module_id, command, variables)
85
{
85
{
86
    if (in_array(Power_ModuleNames, module_name))
86
    if (in_array(Power_ModuleNames, module_name))
87
    {
87
    {
88
        var aliases_data = Module_LookupAliases({
88
        var aliases_data = Module_LookupAliases({
89
            "module_name" : module_name,
89
            "module_name" : module_name,
90
            "module_id"   : module_id,
90
            "module_id"   : module_id,
91
            "group"       : false
91
            "group"       : false
92
        });
92
        });
93
       
93
       
94
        switch (command)
94
        switch (command)
95
        {
95
        {
96
            /*
96
            /*
97
            case "avgPower":
97
            case "avgPower":
98
            {
98
            {
99
                for (var alias_name in aliases_data)
99
                for (var alias_name in aliases_data)
100
                {
100
                {
101
                    var last_value = {};
101
                    var last_value = {};
102
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
102
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
103
 
103
 
104
                    if (last_value_string)
104
                    if (last_value_string)
105
                    {
105
                    {
106
                        last_value = eval("(" + last_value_string + ")");
106
                        last_value = eval("(" + last_value_string + ")");
107
                    }
107
                    }
108
                   
108
                   
109
                    last_value["Energy"] = { "value" : variables["Energy"], "timestamp" : get_time() };
109
                    last_value["Energy"] = { "value" : variables["Energy"], "timestamp" : get_time() };
110
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
110
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
111
                }
111
                }
112
               
112
               
113
                break;
113
                break;
114
            }
114
            }
115
            */
115
            */
116
            case "ElectricPower":
116
            case "ElectricPower":
117
            {
117
            {
118
                for (var alias_name in aliases_data)
118
                for (var alias_name in aliases_data)
119
                {
119
                {
120
                    var last_value = {};
120
                    var last_value = {};
121
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
121
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
122
 
122
 
123
                    if (last_value_string)
123
                    if (last_value_string)
124
                    {
124
                    {
125
                        last_value = eval("(" + last_value_string + ")");
125
                        last_value = eval("(" + last_value_string + ")");
126
                    }
126
                    }
127
                   
127
                   
128
                    last_value["Power"] = { "value" : variables["Power"], "timestamp" : get_time() };
128
                    last_value["Power"] = { "value" : variables["Power"], "timestamp" : get_time() };
129
                    last_value["EnergySum"] = { "value" : variables["EnergySum"], "timestamp" : get_time() };
129
                    last_value["EnergySum"] = { "value" : variables["EnergySum"], "timestamp" : get_time() };
130
                    last_value["Power32"] = { "value" : variables["Power32"], "timestamp" : get_time() };
130
                    last_value["Power32"] = { "value" : variables["Power32"], "timestamp" : get_time() };
131
                   
131
                   
132
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
132
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
133
                }
133
                }
134
               
134
               
135
                break;
135
                break;
136
            }
136
            }
137
        }
137
        }
138
    }
138
    }
139
}
139
}
140
Module_RegisterToOnMessage("all", Power_OnMessage);
140
Module_RegisterToOnMessage("all", Power_OnMessage);
141
 
141