Subversion Repositories HomeAutomation

Rev

Rev 1807 | Rev 1900 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1807 Rev 1899
Line 54... Line 54...
54
        {
54
        {
55
            case "Phonenumber":
55
            case "Phonenumber":
56
            {
56
            {
57
                for (var alias_name in aliases_data)
57
                for (var alias_name in aliases_data)
58
                {
58
                {
-
 
59
                    if (variables["Number"].length > 6) {
-
 
60
                        var direction;
-
 
61
                        if (variables["Number"].charAt(0) == 'A') {
-
 
62
                          direction = "in";
-
 
63
                          var endIndex = variables["Number"].indexOf('C');
-
 
64
                          if (endIndex =! -1) {
-
 
65
                              variables["Number"] = variables["Number"].subString(1,endIndex);
-
 
66
                          }
-
 
67
                        } else {
-
 
68
                            direction = "out";
-
 
69
                        }
59
                    var last_value = {};
70
                        var last_value = {};
60
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
71
                        var last_value_string = Storage_GetParameter("LastValues", alias_name);
61
               
72
                   
62
                    if (last_value_string)
73
                        if (last_value_string)
63
                    {
74
                        {
64
                        last_value = eval("(" + last_value_string + ")");
75
                            last_value = eval("(" + last_value_string + ")");
65
                    }
76
                        }
66
                   
77
                       
67
                    last_value[command] = { "value" : variables["Number"], "timestamp" : get_time() };
78
                        last_value[command] = { "value" : variables["Number"], "timestamp" : get_time(), "direction" : direction };
68
                   
79
                       
69
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
80
                        Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
70
 
81
 
71
                    var all_numbers = Storage_GetParameters("PhoneCalls");
82
                        var all_numbers = Storage_GetParameters("PhoneCalls");
72
                    var newString = "{\"number\":\"" + variables["Number"] + "\",\"module\":\"" + alias_name + "\"}";
83
                        var newString = "{\"number\":\"" + variables["Number"] + "\",\"module\":\"" + alias_name + "\",\"direction\":\"" + direction + "\"}";
73
                    Storage_SetParameter("PhoneCalls", get_time(), newString);
84
                        Storage_SetParameter("PhoneCalls", get_time(), newString);
74
                    Log("New number: "+newString +"\n");               
85
                        Log("New number: "+newString +"\n");
-
 
86
                        Sensor_StoreNumberInPhonebook(variables["Number"]);
-
 
87
                    }
75
                }
88
                }
76
                break;
89
                break;
77
            }
90
            }
78
            case "Voltage":
91
            case "Voltage":
79
            case "Temperature_Celsius":
92
            case "Temperature_Celsius":
Line 90... Line 103...
90
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
103
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
91
 
104
 
92
                    if (last_value_string)
105
                    if (last_value_string)
93
                    {
106
                    {
94
                        last_value = eval("(" + last_value_string + ")");
107
                        last_value = eval("(" + last_value_string + ")");
95
                    }
108
                    }
96
                   
109
                   
97
                    last_value[command] = { "value" : variables["Value"], "timestamp" : get_time() };
110
                    last_value[command] = { "value" : variables["Value"], "timestamp" : get_time() };
98
                   
111
                   
99
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
112
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
100
                }
113
                }
101
               
114
               
102
                break;
115
                break;
103
            }
116
            }
104
        }
117
        }
105
    }
118
    }
106
}
119
}
107
Module_RegisterToOnMessage("all", Sensor_OnMessage);
120
Module_RegisterToOnMessage("all", Sensor_OnMessage);
-
 
121
 
-
 
122
function Sensor_StoreNumberInPhonebook(number)
-
 
123
{
-
 
124
    var phonebook = Storage_GetJsonParamter("PhoneBook",number)
-
 
125
    if (!phonebook) {
-
 
126
        Http_Request("wap.hitta.se/default.aspx?Who=" + number + "&Where=&PageAction=White",
-
 
127
            function(socket_id, result, header, content_data) {
-
 
128
                var persons = new Array();
-
 
129
                if (result.indexOf("200 OK") != -1)
-
 
130
                {
-
 
131
                    var endString = "<anchor>Tillbaka<prev/></anchor>";
-
 
132
                    var nameStartString = " title=\"Link\">";
-
 
133
                    var nameEndString = "</a>";
-
 
134
               
-
 
135
                    var lines = content_data.split("<br/>");
-
 
136
                   
-
 
137
                    for (var n = 1; n < lines.length; n++)
-
 
138
                    {
-
 
139
                        var line = lines[n].trim(" \n");
-
 
140
                       
-
 
141
                        if (line.indexOf(endString) != -1)
-
 
142
                        {
-
 
143
                            break;
-
 
144
                        }
-
 
145
                        var pos = line.indexOf(nameStartString + (persons.length+1) + ".");
-
 
146
                       
-
 
147
                        if (pos != -1)
-
 
148
                        {
-
 
149
                            pos += nameStartString.length + 2
-
 
150
                            persons[persons.length] = line.substr(pos, line.length-pos-nameEndString.length).html_entity_decode().replace("  ", " ");
-
 
151
                        }
-
 
152
                    }
-
 
153
                    if (persons.length > 0) {
-
 
154
                        Storage_SetJsonParameter("PhoneBook", number, persons);
-
 
155
                       
-
 
156
                        //CAll all listeners!
-
 
157
                        //....
-
 
158
                       
-
 
159
                        Log("\033[31mOnlinePhonebook: Found: " + JSON.stringify(persons) + "\033[0m\n");
-
 
160
                    }
-
 
161
                }
-
 
162
                else
-
 
163
                {
-
 
164
                    Log("\033[31mOnlinePhonebook: Failed to do name lookup, result was: " + result + "\033[0m\n");
-
 
165
                }
-
 
166
            }
-
 
167
        );
-
 
168
    } else {
-
 
169
        Log("Number already stored\n");
-
 
170
    }
-
 
171
}
-
 
172
Console_RegisterCommand(Sensor_StoreNumberInPhonebook, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args); });
-
 
173
 
-
 
174
 
-
 
175