Added card read functionallity

main
fbp 2 years ago
parent 941ad2a541
commit cce5879e39

@ -120,4 +120,17 @@
{
"deviceId": 0
}
```
* Card read
Topic: `card/read`
Data example:
```json
{
"deviceId": 0,
"cardUID": "6XjCwg=="
}
```

@ -48,7 +48,6 @@ function armAlarm(deviceId) {
function armingTimerRunout(deviceId) {
if (StateManager.alarmStatus === Arming) {
mqttClient.publish("alarm/state", JSON.stringify({ status: Armed }));
mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: true }));
StateManager.alarmStatus = Armed;
console.log("Alarm has been set to Armed");
insertEvent(deviceId, Armed);
@ -57,13 +56,24 @@ function armingTimerRunout(deviceId) {
function disarmAlarm(deviceId) {
mqttClient.publish("alarm/state", JSON.stringify({ status: Disarmed }));
mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: false }));
StateManager.alarmStatus = Disarmed;
clearTimeout(timer);
console.log("Alarm has been set to Disarmed");
insertEvent(deviceId, Disarmed);
}
function lockDoor() {
mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: true }));
}
let doorTimer;
function unlockDoor() {
mqttClient.publish("door/lock", JSON.stringify({ deviceId: 2, lock: false }));
clearTimeout(doorTimer);
doorTimer = setTimeout(lockDoor, 5000);
}
let timer;
module.exports = {
@ -73,5 +83,7 @@ module.exports = {
disarmingTimerRunout,
armAlarm,
armingTimerRunout,
disarmAlarm
disarmAlarm,
lockDoor,
unlockDoor
};

@ -22,13 +22,15 @@ app.listen(process.env.PORT || 8080, () => {
console.log(`Listening on port ${process.env.PORT || 8080}`);
});
const {insertEvent,
const { insertEvent,
triggerAlarm,
disarmingAlarm,
disarmingTimerRunout,
armAlarm,
armingTimerRunout,
disarmAlarm} = require("./functions");
disarmAlarm,
unlockDoor,
lockDoor } = require("./functions");
mqttClient.on("message", (topic, message, packet) => {
// console.log(packet);
@ -59,20 +61,24 @@ mqttClient.on("message", (topic, message, packet) => {
console.log("door sensor");
triggerAlarm(data.deviceId);
}
if (data.open === false) {
lockDoor();
}
break;
}
case "display/arm": {
const data = JSON.parse(message);
console.log(topic, data);
armAlarm(data.deviceId);
break;
}
case "display/disarm": {
const data = JSON.parse(message);
console.log(topic, data);
disarmAlarm(data.deviceId);
if (StateManager.alarmStatus === Disarmed)
armAlarm(data.deviceId);
break;
}
// case "display/disarm": {
// const data = JSON.parse(message);
// console.log(topic, data);
// disarmAlarm(data.deviceId);
// break;
// }
case "light": {
const data = JSON.parse(message);
db.query(`
@ -95,6 +101,18 @@ mqttClient.on("message", (topic, message, packet) => {
]);
break;
}
case "card/read": {
const data = JSON.parse(message);
console.log(data);
const uids = ["s8K/CQ==", "fo3S0VABBOA=", "6XjCwg=="]
if (uids.includes(data.cardUID)) {
if (StateManager.alarmStatus != Disarmed) {
disarmAlarm();
}
unlockDoor();
}
break;
}
default:
console.log("Unsupported topic received: " + topic);
break;

Loading…
Cancel
Save