Read the statement by Michael Teeuw here.
Motion Detector
-
OK
But if there is a movement detected - is then the mirror shown?Why do you expect to see the mirror after the timeout?
The mirror must be on if there is a movement. And if there is no movement and the timeout is over, then is the mirror off.
That is what you want and what this module is doing.I think your problem is that as soon as the mirror is off, your monitor should turn off - right?
-
@danielis said in Motion Detector:
ur problem is that as soon as the mirror is off, your monito
Yes sir, that is my problem, the module seems to be working fine, but it is a bit annoying to see the alert when the mirror is off
-
Yes, that was what I tried to say in my first post yesterday.
I had the same problem.
Old monitors do not turn off by themselve if there is no signal. Newer monitor do turn off, and all is fine.My solution was tu use a relais to turn on/off the current of the monitor. Therefore I used a pin of the GPIOs to control the relais.
For controlling this GPIO pin I used the wiringpi library
I had to add some lines in the node_helper.js - please look at the lines with: exec("gpio -g …
pi@magicmirror:~/MagicMirror/modules/motiondetector $ more node_helper.js
'use strict'; /* Magic Mirror * Module: MMM-PIR-Sensor * * By Paul-Vincent Roll http://paulvincentroll.com * MIT Licensed. */ const NodeHelper = require('node_helper'); const exec = require('child_process').exec; var moment = require('moment'); module.exports = NodeHelper.create( { start: function () { //this.started = false; exec("gpio -g write 4 1", null); console.log('motiondetector started ...'); console.log('monitor relais on'); }, activateMonitor: function () { exec("gpio -g write 4 1", null); console.log(moment().format() + ' monitor relais on'); //this.started = false; }, deactivateMonitor: function () { exec("gpio -g write 4 0", null); console.log(moment().format() + ' monitor relais off'); //this.started = false; }, socketNotificationReceived: function (notification) { //const self = this; if (notification === 'MOTION_DETECTED') { //const self = this; //this.started = true; this.activateMonitor(); } if (notification === 'DEACTIVATE_MONITOR') { //const self = this; //this.started = true; this.deactivateMonitor(); } } } );
-
@danielis Hi! I’ve tried, but still can’t get it. So I was thinking, instead of putting of the monitor, is it possible to show a black image for example?
So when it detects movement, the MM appears, and when not, a black photo is shown.
Is it possible? -
@pepemujica
There is a module called HideAll (or something similar) which simply hides all modules and leaves a black background. Maybe you want to try it -
Could someone please write up a working instruction for the motion detector with the rasperry pi camera? Not the pir sensor, need to make use of the camera somehow. :)
-
@alexyak Does this module switch off the pi, i’m only asking since i have Alexa running in the background which requires 3 terminals to be open all the time? If the pi goes into ‘standby’ or goes off i have to re-enter the information into the 3 terminals consecutively to get it up and running again. Thanks
Mick -
@Kimzer I wrote up a method using a version of Motion for the RasPi. It’s under the tutorials section of the forum. It’s a non-module solution, so there’s some weirdness involved. But I did get it to work with a Raspicam.
@mickyas - This module doesn’t switch off the pi, it just switches off the output to the monitor.
-
@bhepler Yup that’s what I did too.
-
I’m trying to use this model on my Raspberry Pi Zero W with the Raspberry Cam. I run
MM in serveronly mode, using the Midori-browser. This setup itself works fine and also the camera is able to make picturesraspistill -o testpicture.jpg
However, if I try to add the ‘motiondetector’ module to the config I just get an empty (black, but not switched of) screen after reboot. This is even the case for a very small config.js :
var config = { port: 8080, ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], language: "en", timeFormat: 24, units: "metric", modules: [ { module: "clock", position: "top_left" }, { module: 'motiondetector', config: { timeout: 5*60*1000 } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;}
Things I did:
cd ~/MagicMirror/modules git clone https://github.com/alexyak/motiondetector
Added line
bcm2835-v4l2
to/etc/modules
andhdmi_blanking=1
to/boot/config.txt
If I omit the motiondetecotor entry in the config.js it loads fine and I can see the loaded modules. If I execute
/opt/vc/bin/tvservice -o
the screen goes off (completely black). I I afterwards run
/opt/vc/bin/tvservice --preferred && sudo chvt 6 && sudo chvt 7
the background light of the screen goes on, however the modules that were there previously don’t show up again ( I waited for several minutes).
If I run/opt/vc/bin/tvservice --preferred && sudo chvt 6 && sudo chvt 2
the modules become visible again. Therefore I changed the line in
~/MagicMirror/modules/motiondetector/node_helper.js
accordingly. However then I got still an empty screen and in the log:
Jul 16 18:59:23 me startMagicMirror.sh[480]: ** Message: console message: [native code] @0: Starting module: motiondetector Jul 16 18:59:23 me startMagicMirror.sh[480]: ** Message: console message: http://localhost:8080/modules/motiondetector//motiondetector.js @39: TypeError: Attempted to assign to readonly property. Jul 16 18:59:24 me startMagicMirror.sh[480]: monitor :state 0x12000a [HDMI DMT (82) RGB full 16:9], 1920x1080 @ 60.00Hz, progressive Jul 16 18:59:24 me startMagicMirror.sh[480]: ** Message: console message: http://localhost:8080/js/main.js @134: TypeError: null is not an object (evaluating 'moduleWrapper.getElementsByClassName')
To me as a beginner it looks like a permission problem. However even making the motiondetector folder and all files therein rw for everybody it didn’t work.
I hope that somebody who has knowledge about JS can comment on this issue. Many thanks in advance.