A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
Read the statement by Michael Teeuw here.
MMM-PIR js error
-
Here is error log:
0|run-star | [17.11.2021 14:03.06.696] [ERROR] Whoops! There was an uncaught exception... 0|run-star | [17.11.2021 14:03.06.782] [ERROR] TypeError: Cannot read property 'callbackScripts' of undefined 0|run-star | at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-PIR/node_helper.js:37:45) 0|run-star | at Socket.socket.on (/home/pi/MagicMirror/js/node_helper.js:109:11) 0|run-star | at Socket.emit (events.js:198:13) 0|run-star | at Socket.emitUntyped (/home/pi/MagicMirror/node_modules/socket.io/dist/typed-events.js:69:22) 0|run-star | at process.nextTick (/home/pi/MagicMirror/node_modules/socket.io/dist/socket.js:428:39) 0|run-star | at process._tickCallback (internal/process/next_tick.js:61:11)
Here is my node_helper.js
var NodeHelper = require("node_helper"); const exec = require('child_process').exec; const fs = require('fs'); const Gpio = require('onoff').Gpio; var commandDict = { "js": "node", "py": "python", "sh": "sh" }; module.exports = NodeHelper.create({ running: false, socketNotificationReceived: function (notification, payload) { const self = this; if (notification === "CONFIG") { this.config = payload; this.pir = new Gpio(this.config.sensorPin, 'in', 'both'); this.pir.watch(function (err, value) { if (value == 1) { self.sendSocketNotification("USER_PRESENCE", true); if (!self.running) { self.running = true; if (self.config.turnOffDisplay) { execute(buildCommand("/default/ac.py"), function (stdout) { console.log(stdout); }); } } } }); } else if (notification === "TIMER_EXPIRED") { self.running = false; for (var i = 0; i < this.config.callbackScripts.length; i++) { execute(buildCommand(this.config.callbackScripts[i]), function (stdout) { console.log(stdout); }); } if (self.config.turnOffDisplay) { execute(buildCommand("/default/kapat.py"), function (stdout) { console.log(stdout); }); } } }, }); function buildCommand(fileName) { var file = __dirname + "/callbackScripts/" + fileName; var fileExtension = file.split(".").slice(-1).pop(); return commandDict[fileExtension] + " " + file; } function execute(command, callback) { exec(command, function (error, stdout, stderr) { if (error) { console.log(stderr); } else { callback(stdout); } }); }
-