Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. var ZWave = require('openzwave-shared');
  2.  
  3. var id;
  4. var zwave = new ZWave({
  5.  
  6. });
  7.  
  8.  
  9. console.log("connecting to /dev/ttyACM0");
  10. zwave.connect('/dev/ttyACM0');
  11.  
  12.  
  13. exports.install = function() {
  14. F.route('/*', view_dashboard);
  15. F.route('/zwave/{nodeId}/{classId}/{valueId}/', get_zwave);
  16. F.route('/zwave/nodes/', get_nodes);
  17. F.localize('/templates/*.html', ['compress']);
  18.  
  19. };
  20.  
  21.  
  22.  
  23. var nodes = [];
  24. var homeid = null;
  25.  
  26.  
  27. zwave.on('driver ready', function(home_id) {
  28. homeid = home_id;
  29. console.log('scanning homeid=', homeid.toString(16));
  30. });
  31.  
  32. zwave.on('driver failed', function() {
  33. console.log('failed to start driver');
  34. zwave.disconnect();
  35. process.exit();
  36. });
  37.  
  38. zwave.on('node added', function(nodeid) {
  39. nodes[nodeid] = {
  40. manufacturer: '',
  41. manufacturerid: '',
  42. product: '',
  43. producttype: '',
  44. productid: '',
  45. type: '',
  46. name: '',
  47. loc: '',
  48. classes: {},
  49. ready: false,
  50. };
  51. });
  52.  
  53. zwave.on('value added', function(nodeid, comclass, value) {
  54. if (!nodes[nodeid]['classes'][comclass])
  55. nodes[nodeid]['classes'][comclass] = {};
  56. nodes[nodeid]['classes'][comclass][value.index] = value;
  57. });
  58.  
  59.  
  60.  
  61. zwave.on('node event', function(nodeid, data) {
  62. console.log('node%d event: Basic set %d', nodeid, data);
  63. });
  64.  
  65.  
  66.  
  67. zwave.on('value changed', function(nodeid, comclass, value) {
  68. if (nodes[nodeid]['ready']) {
  69. console.log('node%d: changed: %d:%s:%s->%s', nodeid, comclass,
  70. value['label'],
  71. nodes[nodeid]['classes'][comclass][value.index]['value'],
  72. value['value']);
  73. }
  74. nodes[nodeid]['classes'][comclass][value.index] = value;
  75. });
  76.  
  77.  
  78. zwave.on('node ready', function(nodeid, nodeinfo) {
  79. console.log('nodeid:', nodeid , 'name:', nodeinfo.manufacturer ,nodeinfo.product );
  80. //console.log("ready", nodeid, JSON.stringify(nodes[nodeid]));
  81.  
  82. // if (nodeid == 2) {
  83. // var self = nodes[nodeid];
  84. // var val = self.classes[112][44];
  85. // console.log(val.label, val.value);
  86. // }
  87. // if (nodeid == 4){
  88. //zwave.setValue(4, 39, 0, 0, false);
  89.  
  90.  
  91. // }
  92.  
  93.  
  94. id = setInterval(function() {
  95. // for (comclass in nodes[nodeid]['classes']) {
  96. //get_zwave(nodeid, comclass, value);
  97. // zwave.enablePoll(nodeid, comclass);
  98.  
  99. // var values = nodes[nodeid]['classes'][comclass];
  100. //console.log('node%d: class %d', nodeid, comclass);
  101. // console.log('VALUES >');
  102. //console.log(nodes[nodeid]['42'].label, "=", nodes[nodeid]['42'].value);
  103.  
  104. //}
  105.  
  106.  
  107. }, 2000); // 2000 ms = 2sekundy v praxy to budu podla mna radovo minutka (minuty) lebo teplota sa tak Ĩasto nemeni.
  108.  
  109.  
  110.  
  111.  
  112.  
  113. });
  114. zwave.on('node event', function(nodeid, data) {
  115. console.log('node%d event: Basic set %d', nodeid, data);
  116. });
  117.  
  118.  
  119.  
  120.  
  121. function view_dashboard() {
  122. var self = this;
  123. GETSCHEMA('Repository').get(self, self.callback('index'));
  124. }
  125.  
  126.  
  127. zwave.on('scan complete', function() {
  128. console.log('====> scan complete');
  129.  
  130. });
  131.  
  132.  
  133. zwave.on('value changed', function(nodeid, comclass, value) {
  134. if (nodes[nodeid]['ready']) {
  135. console.log('node%d: changed: %d:%s:%s->%s', nodeid, comclass,
  136. value['label'],
  137. nodes[nodeid]['classes'][comclass][value.index]['value'],
  138. value['value']);
  139. }
  140. nodes[nodeid]['classes'][comclass][value.index] = value;
  141. });
  142.  
  143. process.on('SIGINT', function() {
  144. console.log('disconnecting...');
  145. zwave.disconnect('/dev/ttyACM0');
  146. process.exit();
  147. });
  148. function get_zwave(nodeId, classId, valueId){
  149. //console.log(JSON.stringify(nodes));
  150. //console.log("get_zwave", nodeId, classId, valueId, " = ", nodes[nodeId]['classes']);
  151. if (nodes[nodeId]['classes'][classId] === undefined) {
  152. this.json({"error":"class not found"});
  153. return;
  154. }
  155. if (nodes[nodeId]['classes'][classId][valueId] === undefined) {
  156. this.json({"error":"value not found"});
  157. return;
  158. }
  159. var val = nodes[nodeId]['classes'][classId][valueId].value;
  160. this.json(val)
  161. zwave.setValue({ node_id:4, class_id: 38, instance:1, index:0}, 0);
  162.  
  163.  
  164. }
  165.  
  166. function get_nodes(){
  167.  
  168. var val = 'tu by som rad dostal tie infa ';
  169. this.json(val);
  170.  
  171.  
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement