Subversion Repositories HomeAutomation

Rev

Rev 1897 | Rev 2079 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
1603 runge 1
 
1644 runge 2
Require("plugin/module.js");
3
 
1687 runge 4
Dimmer_ModuleNames    = [ "Dimmer230", "hwPWM" ];
1644 runge 5
Dimmer_SpeedLevels    = function() { return [ 50, 135, 200, 255 ]; };
6
Dimmer_StrengthLevels = function() { return [ 0, 50, 100, 150, 200, 255 ]; };
7
Dimmer_StepsLevels    = function() { return [ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90 ]; };
8
Dimmer_Directions     = function() { return [ "Increase", "Decrease" ]; };
9
Dimmer_Channels       = function() { return [ 0 ]; };
1647 runge 10
Dimmer_Aliases        = function() { return Module_GetAliasNames(Dimmer_ModuleNames); };
11
Dimmer_AvailableIds   = function() { return Module_GetAvailableIds(Dimmer_ModuleNames); };
1644 runge 12
 
13
function Dimmer_StartFade(alias_name, speed, direction)
1603 runge 14
{
1644 runge 15
    if (arguments.length < 3)
1673 runge 16
    {  
1649 runge 17
        Log("\033[31mNot enough parameters given.\033[0m\n");
1647 runge 18
        return false;
1644 runge 19
    }
20
 
1647 runge 21
    var aliases_data = Module_ResolveAlias(alias_name, Dimmer_ModuleNames);
22
    var found = false;
1644 runge 23
 
24
    for (var name in aliases_data)
25
    {
26
        var variables = {
1647 runge 27
            "Channel"   : aliases_data[name]["specific"]["Channel"],
1644 runge 28
            "Speed"     : speed,
29
            "Direction" : direction };
30
 
31
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Start_Fade", variables))
1603 runge 32
        {
1765 linlun 33
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
1603 runge 34
        }
1644 runge 35
        else
36
        {
1649 runge 37
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
1644 runge 38
        }
1647 runge 39
 
40
        found = true;
1603 runge 41
    }
42
 
1647 runge 43
    if (!found)
1644 runge 44
    {
1649 runge 45
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
1647 runge 46
        return false;
1644 runge 47
    }
1603 runge 48
 
1647 runge 49
    return true;
1603 runge 50
}
1647 runge 51
Console_RegisterCommand(Dimmer_StartFade, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Dimmer_Aliases(), Dimmer_SpeedLevels(), Dimmer_Directions()); });
1603 runge 52
 
1644 runge 53
function Dimmer_StopFade(alias_name)
1603 runge 54
{
1644 runge 55
    if (arguments.length < 1)
56
    {
1649 runge 57
        Log("\033[31mNot enough parameters given.\033[0m\n");
1647 runge 58
        return false;
1644 runge 59
    }
1603 runge 60
 
1647 runge 61
    var aliases_data = Module_ResolveAlias(alias_name, Dimmer_ModuleNames);
62
    var found = false;
1644 runge 63
 
64
    for (var name in aliases_data)
65
    {
66
        var variables = {
1647 runge 67
        "Channel" : aliases_data[name]["specific"]["Channel"] };
1644 runge 68
 
69
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Stop_Fade", variables))
70
        {
1765 linlun 71
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
1644 runge 72
        }
73
        else
74
        {
1649 runge 75
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
1644 runge 76
        }
1647 runge 77
 
78
        found = true;
1644 runge 79
    }
80
 
1647 runge 81
    if (!found)
1644 runge 82
    {
1649 runge 83
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
1647 runge 84
        return false;
1644 runge 85
    }
86
 
1647 runge 87
    return true;
1603 runge 88
}
1647 runge 89
Console_RegisterCommand(Dimmer_StopFade, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Dimmer_Aliases()); });
1603 runge 90
 
2078 kribba 91
function Dimmer_AbsoluteFade(alias_name, speed, level_in)
1603 runge 92
{
1644 runge 93
    if (arguments.length < 3)
94
    {
1649 runge 95
        Log("\033[31mNot enough parameters given.\033[0m\n");
1647 runge 96
        return false;
1644 runge 97
    }
1603 runge 98
 
1647 runge 99
    var aliases_data = Module_ResolveAlias(alias_name, Dimmer_ModuleNames);
100
    var found = false;
2078 kribba 101
    var level = level_in;
1644 runge 102
 
103
    for (var name in aliases_data)
104
    {
1765 linlun 105
        if (aliases_data[name]["module_name"]=="hwPWM") {
2078 kribba 106
          level = level_in*39;
1765 linlun 107
        }
1644 runge 108
        var variables = {
1647 runge 109
        "Channel"   : aliases_data[name]["specific"]["Channel"],
110
        "Speed"     : speed,
111
        "EndValue"  : level };
1644 runge 112
 
113
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Abs_Fade", variables))
114
        {
1765 linlun 115
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
1644 runge 116
        }
117
        else
118
        {
1649 runge 119
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
1644 runge 120
        }
1647 runge 121
 
122
        found = true;
1644 runge 123
    }
124
 
1647 runge 125
    if (!found)
1644 runge 126
    {
1649 runge 127
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
1647 runge 128
        return false;
1644 runge 129
    }
130
 
1647 runge 131
    return true;
1603 runge 132
}
1647 runge 133
Console_RegisterCommand(Dimmer_AbsoluteFade, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Dimmer_Aliases(), Dimmer_SpeedLevels(), Dimmer_StrengthLevels()); });
1603 runge 134
 
1644 runge 135
function Dimmer_RelativeFade(alias_name, speed, direction, steps)
1603 runge 136
{
1644 runge 137
    if (arguments.length < 4)
138
    {
1649 runge 139
        Log("\033[31mNot enough parameters given.\033[0m\n");
1647 runge 140
        return false;
1644 runge 141
    }
1603 runge 142
 
1647 runge 143
    var aliases_data = Module_ResolveAlias(alias_name, Dimmer_ModuleNames);
144
    var found = false;
1644 runge 145
 
146
    for (var name in aliases_data)
147
    {
1765 linlun 148
        if (aliases_data[name]["module_name"]=="hwPWM") {
149
          steps = steps*39;
150
        }
1644 runge 151
        var variables = {
1647 runge 152
        "Channel"   : aliases_data[name]["specific"]["Channel"],
153
        "Speed"     : speed,
154
        "Direction" : direction,
155
        "Steps"     : steps };
1644 runge 156
 
157
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Rel_Fade", variables))
158
        {
1765 linlun 159
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
1644 runge 160
        }
161
        else
162
        {
1649 runge 163
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
1644 runge 164
        }
1647 runge 165
 
166
        found = true;
1644 runge 167
    }
168
 
1647 runge 169
    if (!found)
1644 runge 170
    {
1649 runge 171
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
1647 runge 172
        return false;
1644 runge 173
    }
174
 
1647 runge 175
    return true;
1603 runge 176
}
1647 runge 177
Console_RegisterCommand(Dimmer_RelativeFade, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Dimmer_Aliases(), Dimmer_SpeedLevels(), Dimmer_Directions(), Dimmer_StepsLevels()); });
1603 runge 178
 
1644 runge 179
function Dimmer_Demo(alias_name, speed, steps)
1603 runge 180
{
1644 runge 181
    if (arguments.length < 3)
182
    {
1649 runge 183
        Log("\033[31mNot enough parameters given.\033[0m\n");
1647 runge 184
        return false;
1644 runge 185
    }
1603 runge 186
 
1647 runge 187
    var aliases_data = Module_ResolveAlias(alias_name, Dimmer_ModuleNames);
188
    var found = false;
1644 runge 189
 
190
    for (var name in aliases_data)
191
    {
1765 linlun 192
        if (aliases_data[name]["module_name"]=="hwPWM") {
193
          steps = steps*39;
194
        }
1644 runge 195
        var variables = {
1647 runge 196
        "Channel"   : aliases_data[name]["specific"]["Channel"],
197
        "Speed"     : speed,
198
        "Steps"     : steps };
1644 runge 199
 
200
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Demo", variables))
201
        {
1765 linlun 202
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
1644 runge 203
        }
204
        else
205
        {
1649 runge 206
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
1644 runge 207
        }
1647 runge 208
 
209
        found = true;
1644 runge 210
    }
211
 
1647 runge 212
    if (!found)
1644 runge 213
    {
1649 runge 214
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
1647 runge 215
        return false;
1644 runge 216
    }
217
 
1647 runge 218
    return true;
1603 runge 219
}
1647 runge 220
Console_RegisterCommand(Dimmer_Demo, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Dimmer_Aliases(), Dimmer_SpeedLevels(), Dimmer_StepsLevels()); });
1673 runge 221
 
222
function Dimmer_OnMessage(module_name, module_id, command, variables)
223
{
224
    if (in_array(Dimmer_ModuleNames, module_name))
225
    {
226
        var aliases_data = Module_LookupAliases({
227
            "module_name" : module_name,
228
            "module_id"   : module_id,
229
            "group"       : false
230
        });
231
 
232
        switch (command)
233
        {
234
            case "Netinfo":
235
            {
236
                for (var alias_name in aliases_data)
237
                {
238
                    if (aliases_data[alias_name]["specific"]["Channel"] != variables["Channel"])
239
                    {
240
                        continue;
241
                    }
242
 
243
                    var last_value = {};
244
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
245
 
246
                    if (last_value_string)
247
                    {
248
                        last_value = eval("(" + last_value_string + ")");
249
                    }
250
 
251
                    last_value["Connection"] = { "value" : variables["Connection"], "timestamp" : get_time() };
252
                    last_value["Frequency"] = { "value" : variables["Frequency"], "timestamp" : get_time() };
253
                    last_value["Level"] = { "value" : variables["DimmerValue"], "timestamp" : get_time() };
254
 
255
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
256
                }
257
 
258
                break;
259
            }
1765 linlun 260
            case "Pwm":
261
            {
262
                for (var alias_name in aliases_data)
263
                {
1897 runge 264
                    if (aliases_data[alias_name]["specific"]["Channel"] != variables["Channel"])
1765 linlun 265
                    {
266
                        continue;
267
                    }
268
 
269
                    var last_value = {};
270
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
271
 
272
                    if (last_value_string)
273
                    {
274
                        last_value = eval("(" + last_value_string + ")");
275
                    }
276
                    var value = 0 + variables["Value"];
277
                    value = value / 39;
278
                    value = parseInt(value).toString();
279
                    last_value["Level"] = { "value" : value, "timestamp" : get_time() };
280
 
281
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
282
                }
283
 
284
                break;
285
            }
1673 runge 286
        }
287
    }
288
}
289
Module_RegisterToOnMessage("all", Dimmer_OnMessage);