| ... | ... |
@@ -28,6 +28,7 @@ function authenticate() {
|
| 28 | 28 |
|
| 29 | 29 |
xhr.onload = function () {
|
| 30 | 30 |
if (xhr.readyState === 4) {
|
| 31 |
+ retry=0; |
|
| 31 | 32 |
console.log('------authentication request returned');
|
| 32 | 33 |
if(xhr.status == 200) {
|
| 33 | 34 |
response = JSON.parse(xhr.responseText); |
| ... | ... |
@@ -69,11 +70,11 @@ function authenticate() {
|
| 69 | 70 |
authenticate(); |
| 70 | 71 |
}else{
|
| 71 | 72 |
console.log('------Authentication timed out a second time');
|
| 72 |
- //send back "timeout" to watch |
|
| 73 |
- auth=""; |
|
| 74 |
- message ="Authentication timed out, verify settings and connectivity"; |
|
| 73 |
+ //send back "timeout" to watch |
|
| 74 |
+ auth=""; |
|
| 75 |
+ message ="Authentication timed out, verify settings and connectivity"; |
|
| 75 | 76 |
|
| 76 |
- // Build message |
|
| 77 |
+ // Build message |
|
| 77 | 78 |
var dict = {
|
| 78 | 79 |
'auth': message, |
| 79 | 80 |
}; |
| ... | ... |
@@ -105,30 +106,62 @@ function get_status() {
|
| 105 | 106 |
var server=localStorage.getItem('server');
|
| 106 | 107 |
url = server + "/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&version=1&method=GetInfo&_sid="+sid; |
| 107 | 108 |
var xhr = new XMLHttpRequest(); |
| 109 |
+ xhr.timeout = 3000; // time in milliseconds |
|
| 108 | 110 |
|
| 109 |
- xhr.open("GET", url,false);
|
|
| 110 |
- xhr.send(); |
|
| 111 |
+ xhr.open("GET", url,true);
|
|
| 111 | 112 |
|
| 112 |
- if(xhr.status == 200) {
|
|
| 113 |
- response = JSON.parse(xhr.responseText); |
|
| 114 |
- if (response.success == true){
|
|
| 115 |
- status=response.data.on; |
|
| 116 |
- var message; |
|
| 117 |
- switch (status) {
|
|
| 118 |
- case true: |
|
| 119 |
- message = "Your Home mode is ON"; |
|
| 120 |
- break; |
|
| 121 |
- case false: |
|
| 122 |
- message = "Your Home mode is OFF"; |
|
| 123 |
- break; |
|
| 124 |
- default: |
|
| 125 |
- message = "home mode is unknown !"; |
|
| 126 |
- } |
|
| 113 |
+ xhr.onload = function () {
|
|
| 114 |
+ if (xhr.readyState === 4) {
|
|
| 115 |
+ retry=0; |
|
| 116 |
+ console.log('------Get-status request returned');
|
|
| 117 |
+ if(xhr.status == 200) {
|
|
| 118 |
+ response = JSON.parse(xhr.responseText); |
|
| 119 |
+ if (response.success == true){
|
|
| 120 |
+ status=response.data.on; |
|
| 121 |
+ var message; |
|
| 122 |
+ switch (status) {
|
|
| 123 |
+ case true: |
|
| 124 |
+ message = "Your Home mode is ON"; |
|
| 125 |
+ break; |
|
| 126 |
+ case false: |
|
| 127 |
+ message = "Your Home mode is OFF"; |
|
| 128 |
+ break; |
|
| 129 |
+ default: |
|
| 130 |
+ message = "home mode is unknown !"; |
|
| 131 |
+ } |
|
| 132 |
+ // Build message |
|
| 133 |
+ var dict = {
|
|
| 134 |
+ 'status': message, |
|
| 135 |
+ }; |
|
| 136 |
+ |
|
| 137 |
+ // Send the message |
|
| 138 |
+ Pebble.sendAppMessage(dict, function(e) {
|
|
| 139 |
+ console.log('sent');
|
|
| 140 |
+ }, function() {
|
|
| 141 |
+ console.log('failed');
|
|
| 142 |
+ }); |
|
| 143 |
+ } |
|
| 144 |
+ }else {
|
|
| 145 |
+ console.log('------Request returned error code ' + xhr.status);
|
|
| 146 |
+ } |
|
| 147 |
+ } |
|
| 148 |
+ } |
|
| 149 |
+ |
|
| 150 |
+ xhr.ontimeout = function (e){
|
|
| 151 |
+ retry++; |
|
| 152 |
+ if (retry<=1){
|
|
| 153 |
+ console.log('------Get-Status timed out retrying another time ');
|
|
| 154 |
+ get_status(); |
|
| 155 |
+ }else{
|
|
| 156 |
+ console.log('------Get-Status timed out a second time');
|
|
| 157 |
+ //send back "timeout" to watch |
|
| 158 |
+ message ="Get-Status timed out, verify settings and connectivity"; |
|
| 159 |
+ |
|
| 127 | 160 |
// Build message |
| 128 | 161 |
var dict = {
|
| 129 | 162 |
'status': message, |
| 130 | 163 |
}; |
| 131 |
- |
|
| 164 |
+ |
|
| 132 | 165 |
// Send the message |
| 133 | 166 |
Pebble.sendAppMessage(dict, function(e) {
|
| 134 | 167 |
console.log('sent');
|
| ... | ... |
@@ -136,9 +169,11 @@ function get_status() {
|
| 136 | 169 |
console.log('failed');
|
| 137 | 170 |
}); |
| 138 | 171 |
} |
| 139 |
- }else {
|
|
| 140 |
- console.log('------Request returned error code ' + xhr.status.toString());
|
|
| 141 | 172 |
} |
| 173 |
+ |
|
| 174 |
+ xhr.send(); |
|
| 175 |
+ |
|
| 176 |
+ |
|
| 142 | 177 |
}else{
|
| 143 | 178 |
Pebble.showSimpleNotificationOnPebble("DSCam H-S", "You need to set your Synology account and server.");
|
| 144 | 179 |
} |
| ... | ... |
@@ -272,3 +307,4 @@ Pebble.addEventListener('appmessage', function(e) {
|
| 272 | 307 |
} |
| 273 | 308 |
|
| 274 | 309 |
}); |
| 310 |
+ |