const StateManager = require("./StateManager"); const mqtt = require("mqtt"); const fs = require("fs"); // console.log(fs.readFileSync("certs/ca.crt", {encoding: "utf-8"})); const mqttClient = mqtt.connect(process.env.MQTT, { clean: true, // ca: fs.readFileSync("certs/ca.crt", {encoding: "utf-8"}), // cert: fs.readFileSync("certs/client-alarm-controller.crt", {encoding: "utf-8"}), // key: fs.readFileSync("certs/client-alarm-controller.key", {encoding: "utf-8"}) }); mqttClient.on("error", (err) => { console.log(err); }) mqttClient.on("connect", (a) => { console.log(`Connected to ${process.env.MQTT}`); // mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: true })); // setTimeout(() => { // mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: false })); // }, 3000); console.log(StateManager.alarmStatus); mqttClient.publish("alarm/state", JSON.stringify({ status: StateManager.alarmStatus, changed: true })); mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: true })); // mqttClient.publish("alarm/state", JSON.stringify({ status: "Triggered" })); // setTimeout(() => { // mqttClient.publish("alarm/state", JSON.stringify({ status: "Arming" })); // }, 5000); setInterval(() => { mqttClient.publish("alarm/state", JSON.stringify({ status: StateManager.alarmStatus, changed: false })); }, 2000); }); mqttClient.subscribe("motion"); // mqttClient.subscribe("sound"); mqttClient.subscribe("temperature"); mqttClient.subscribe("light"); mqttClient.subscribe("door/status"); mqttClient.subscribe("display/arm"); mqttClient.subscribe("display/disarm"); mqttClient.subscribe("display/passwordEntered"); mqttClient.subscribe("card/read"); module.exports = mqttClient;