You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
JavaScript
49 lines
1.7 KiB
JavaScript
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; |