Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. var Accessory = require('../').Accessory;
  2. var Service = require('../').Service;
  3. var Characteristic = require('../').Characteristic;
  4. var uuid = require('../').uuid;
  5. var mqtt = require('mqtt');
  6. var mqttMSG = 0;
  7.  
  8.  
  9. var name = "Sonoff Humidity Sensor"; //accessory name
  10. var sonoffUUID = "hap-nodejs:accessories:sonoff:Humidity:" + name; //change this to your preferences
  11. var sonoffUsername = "AD:34:A3:F1:62:05";
  12. var MQTT_NAME = 'LivingRoom/SonoffLight' //MQTT topic that was set on the Sonoff firmware
  13. var MQTT_IP = 'localhost' //change this if your MQTT broker is different
  14.  
  15.  
  16. var options = {
  17. port: 1883,
  18. host: MQTT_IP,
  19. // username: 'pi', enable only if you have authentication on your MQTT broker
  20. // password: 'raspberry', enable only if you have authentication on your MQTT broker
  21. clientId: MQTT_NAME+'HAP'
  22. };
  23. var sonoffTopic = 'cmnd/'+MQTT_NAME+'/status';
  24. var client = mqtt.connect(options);
  25.  
  26. client.on('connect', function () {
  27. client.subscribe('stat/'+MQTT_NAME+'/STATUS10')
  28. });
  29.  
  30. var sonoffObject = {
  31. CurrentRelativeHumidity: 99,
  32. getReadings: function() {
  33. client.publish(sonoffTopic, '10');
  34. },
  35. identify: function() {
  36. console.log(name + " Identified!");
  37. }
  38. }
  39.  
  40. var sonoffHumi = exports.accessory = new Accessory(name, uuid.generate(sonoffUUID));
  41.  
  42. sonoffHumi.username = ANDRII;
  43. sonoffHumi.pincode = "031-45-154";
  44.  
  45. // listen for the "identify" event for this Accessory
  46. sonoffHumi.on('identify', function(paired, callback) {
  47. sonoffObject.identify();
  48. callback();
  49. });
  50.  
  51. sonoffHumi
  52. .addService(Service.HumiditySensor)
  53. .getCharacteristic(Characteristic.CurrentRelativeHumidity)
  54. .on('get', function(callback) {
  55. // return our current value
  56. callback(null, sonoffObject.CurrentRelativeHumidity);
  57. });
  58.  
  59. client.on('message', function(topic, message) {
  60. // console.log(message.toString());
  61. message = message.toString();
  62. mqttMSG = JSON.parse(message);
  63. // console.log(mqttMSG.StatusSNS.DHT11.Humidity);
  64. sonoffObject.CurrentRelativeHumidity = mqttMSG.StatusSNS.DHT11.Humidity;
  65. });
  66.  
  67. setInterval(function() {
  68.  
  69. sonoffObject.getReadings();
  70.  
  71. sonoffHumi
  72. .getService(Service.HumiditySensor)
  73. .setCharacteristic(Characteristic.CurrentRelativeHumidity, sonoffObject.CurrentRelativeHumidity);
  74.  
  75. }, 60000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement