Subversion Repositories HomeAutomation

Rev

Rev 1380 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. var sensorServices = new Array();
  2. var sensorValues = new Array();
  3. //var sensorNames = new Array();
  4.  
  5. ServiceManager.addCallback(this._TempSensors_SensorSeviceOnline);
  6.  
  7. function _TempSensors_SensorSeviceOnline(service) {
  8.     if (service.getName() == "DS18x20" || service.getName() == "TC1047A" || service.getName() == "FOST02") {
  9.         _TempSensors_updateSensorList();
  10.     }
  11.     //log("Sensor online\n");
  12. }
  13.  
  14. function _TempSensors_updateSensorList() {
  15.     this.sensorServices = new Array();
  16.  
  17.     for (var id in ServiceManager.Services)
  18.     {
  19.         if (ServiceManager.Services[id].getName() == "DS18x20" || ServiceManager.Services[id].getName() == "TC1047A" || ServiceManager.Services[id].getName() == "FOST02")
  20.         {
  21.             ServiceManager.Services[id].registerEventCallback("newValue", function(args) { _TempSensors_NewTemperature(args); });
  22.             ServiceManager.Services[id].registerEventCallback("offline", function(args) { _TempSensors_SensorOffline(args); });
  23.             ServiceManager.Services[id].setReportInterval(2);
  24.             this.sensorServices[sensorServices.length] = ServiceManager.Services[id];
  25.             //log("found sensors\n");
  26.         }
  27.     }
  28. }
  29.  
  30. function _TempSensors_NewTemperature(array){
  31.       sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]] = new Array();
  32.       sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]['value'] = array["value"];
  33.       sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]['service'] = array["service"];
  34.       //log("new value: from: "+""+array["moduleName"]+array["moduleId"]+array["sensor"] +"with value: "+ sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]["value"]+"\n");
  35.       //log("length is now: "+sensorValues+" \n");
  36. /*
  37.       if (sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]] == null) {
  38.         if(getSensorName(array["moduleName"], array["moduleId"], array["sensor"]) == null) {
  39.             sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]="TempSensor_"+array["moduleName"]+array["moduleId"]+array["sensor"]
  40.         } else {
  41.             sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]="TempSensor_"+getSensorName(array["moduleName"], array["moduleId"], array["sensor"]);
  42.         }
  43.         //log("Found Temperature sensor: "+ sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]+"\n");
  44.       }
  45.       var content = array["value"]+"\n";
  46.       var filename = "/dev/shm/can/" + sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]];
  47.       setFileContents(filename, content);
  48. */
  49. }
  50.  
  51. function _TempSensors_SensorOffline(data) {
  52.     var sensorValues = new Array();
  53. }
  54.        
  55. function getSensorValue(SensorName)
  56. {
  57.     var sensorStore = DataStore.getStore("SensorNames");
  58.     if (sensorStore)
  59.     {
  60.         for (var n = 0; n < sensorStore['SensorNames'].length; n++)
  61.         {
  62.             if (sensorStore['SensorNames'][n]['name'] == SensorName)
  63.             {
  64.                 if (sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']] != null) {
  65.                     var returnvalue = sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['value'];
  66.                     if (returnvalue != null) {
  67.                         return returnvalue;
  68.                     } else {
  69.                         return -50;
  70.                     }
  71.                 }
  72.             }
  73.            
  74.         }
  75.     }
  76.     return -50;
  77.    
  78. }
  79.  
  80. function getSensorInfo(SensorName)
  81. {
  82.     var sensorStore = DataStore.getStore("SensorNames");
  83.     if (sensorStore)
  84.     {
  85.         for (var n = 0; n < sensorStore['SensorNames'].length; n++)
  86.         {
  87.             if (sensorStore['SensorNames'][n]['name'] == SensorName)
  88.             {
  89.                 var returnvalue = new Array();
  90.                 returnvalue['name'] = sensorStore['SensorNames'][n]['name'];
  91.                 returnvalue['description'] = sensorStore['SensorNames'][n]['description'];
  92.                 returnvalue['shortName'] = sensorStore['SensorNames'][n]['shortName'];
  93.                 returnvalue['moduleType'] = sensorStore['SensorNames'][n]['moduleType'];
  94.                 returnvalue['moduleId'] = sensorStore['SensorNames'][n]['moduleId'];
  95.                 returnvalue['sensorId'] = sensorStore['SensorNames'][n]['sensorId'];
  96.                 return returnvalue;
  97.             }
  98.            
  99.         }
  100.     }
  101.     return null;
  102. }
  103.  
  104. function getSensorService(SensorName)
  105. {
  106.     var sensorStore = DataStore.getStore("SensorNames");
  107.     if (sensorStore)
  108.     {
  109.         for (var n = 0; n < sensorStore['SensorNames'].length; n++)
  110.         {
  111.             if (sensorStore['SensorNames'][n]['name'] == sensorName)
  112.             {
  113.                 return this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'];
  114.             }
  115.            
  116.         }
  117.     }
  118.     return null;
  119. }
  120.  
  121. function getSensorList()
  122. {
  123.     var sensorStore = DataStore.getStore("SensorNames");
  124.     var sensorList = new Array();
  125.     var sensorIndex = 0;
  126.     if (sensorStore)
  127.     {
  128.         for (var n = 0; n < sensorStore['SensorNames'].length; n++)
  129.         {
  130.             if (this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']] != null)
  131.             {
  132.                 if (this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'].isOnline()) {
  133.                     sensorList[sensorIndex] = new Array();
  134.                     sensorList[sensorIndex]['name'] = sensorStore['SensorNames'][n]['name'];
  135.                     sensorList[sensorIndex]['shortName'] = sensorStore['SensorNames'][n]['shortName'];
  136.                     sensorList[sensorIndex]['sensorId'] = sensorStore['SensorNames'][n]['sensorId'];
  137.                     sensorList[sensorIndex]['description'] = sensorStore['SensorNames'][n]['description'];
  138.                     sensorList[sensorIndex]['service'] = this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'];
  139. //log("SensorList"+sensorIndex+" "+sensorList[sensorIndex]['name']+" \n");
  140.                     sensorIndex++;
  141.                 }
  142.             }
  143.         }
  144.     }
  145.     return sensorList;
  146. }
  147.  
  148. function getSensorName(moduleType, moduleId, sensorId)
  149. {
  150.     var sensorStore = DataStore.getStore("SensorNames");
  151.     var sensorIndex = 0;
  152.     if (sensorStore)
  153.     {
  154.         for (var n = 0; n < sensorStore['SensorNames'].length; n++)
  155.         {
  156.             if (sensorStore['SensorNames'][n]['sensorId'] == sensorId)
  157.             {
  158.                 if (sensorStore['SensorNames'][n]['moduleId'] == moduleId)
  159.                 {
  160.                     if (sensorStore['SensorNames'][n]['moduleType'] == moduleType) {
  161.                         return sensorStore['SensorNames'][n]['name'];
  162.                     }
  163.                 }
  164.             }
  165.         }
  166.     }
  167.     return null;
  168. }
  169.