Read the statement by Michael Teeuw here.
{HowTo} turn on/off your monitor (Time based, PIR/Button, App)
-
Have you disabled the screensaver? The easiest, most common way of doing that is to install xscreensaver and disable the screensaver that way
-
@Mykle1 Thank you that was the problem. Xscreensaver was easy use. Thanks
Another problem I had was: when I changed the orientation of my monitor when it was coming back on all I saw was a black screen… so I did more research and found that that I could replace the tvservice for:
vcgencmd display_power 0
turns off the screenvcgencmd display_power 1
turns on the screenThat worked better with my monitor for some reason.
-
Thanks for this tutorial…
I am using a PIR. The monitor switches on immediately after detection of motion. I am looking for an option to switch on the monitor if a person stands in front of it for 10 seconds. Mine is a floor mirror, so some people are crossing the floor many times a day without looking at the mirror.
-
@blebbens said in {HowTo} turn on/off your monitor (Time based, PIR/Button, App):
Thanks for this tutorial…
I am using a PIR. The monitor switches on immediately after detection of motion. I am looking for an option to switch on the monitor if a person stands in front of it for 10 seconds. Mine is a floor mirror, so some people are crossing the floor many times a day without looking at the mirror.
If u use the external PIR script (point 2.2) u could try to change line 25 in the script and define a TURNON-DELAY.
if turned_off and time.time() >= TURNON_DELAY:
The whole script would look like this:
#!/usr/bin/env python import sys import time import RPi.GPIO as io import subprocess io.setmode(io.BCM) SHUTOFF_DELAY = 120 # in seconds, how long the monitor will be on until next button press or PIR detection TURNON_DELAY = 10 PIR_PIN = 22 # 15 on the board (this needn't to be a PIR. Can be a button also) LED_PIN = 16 # optional, don't use as Relay-PIN. It just shows detection time of the PIR without delay time def main(): io.setup(PIR_PIN, io.IN) io.setup(LED_PIN, io.OUT) turned_off = False last_motion_time = time.time() while True: if io.input(PIR_PIN): last_motion_time = time.time() io.output(LED_PIN, io.LOW) print ".", sys.stdout.flush() if turned_off and time.time() >= TURNON_DELAY: turned_off = False turn_on() else: if not turned_off and time.time() > (last_motion_time + SHUTOFF_DELAY): turned_off = True turn_off() if not turned_off and time.time() > (last_motion_time + 1): io.output(LED_PIN, io.HIGH) time.sleep(.1) def turn_on(): subprocess.call("sh /home/pi/monitor_on.sh", shell=True) def turn_off(): subprocess.call("sh /home/pi/monitor_off.sh", shell=True) if __name__ == '__main__': try: main() except KeyboardInterrupt: io.cleanup()
Don’t know if it will work. Just brainstorming cause i haven’t much time
-
This is really helpful! Thanks.
I have a PIR motion sensor set up, but I am trying to work out if it is possible (or better yet already exists) to have the motion sensor become unresponsive/display not actually active during night hours (predefined by me) as I have the mirror set up in my room and if I get up during the night I don’t want it coming on as I never turn lights on since it takes forever for me to get back to sleep!
I do want the motion sensor to work like normal during the day however. Does the Cronjob method prevent the sensor from working during the on hours? -
Hey mate,
the way that will work in every case is to use a relay to interrupt the voltage for the pir.
Then write two little bash files and execute them via cronjob.
turn on relay with GPIO 7 and give the PIR voltage:
gpio mode 7 out gpio write 7 1
turn off the relay with GPIO 7 and interrupt the PIR voltage:
gpio mode 7 out gpio write 7 0
otherwise u could use if statement with a datetime check within the python script. something like this: https://stackoverflow.com/questions/10048249/how-do-i-determine-if-current-time-is-within-a-specified-range-using-pythons-da/10048290
If i find some time, i will try to adjust the python script from this tutorial…
-
Hey, big thanks for this tutorial!
i want to use method 2.2 the PIR-Script.
My Problem is: it looks like there is always a movement detected!
i stuck on the point
“You can check if your button works by simply typing python pir.py. Every time u move through the PIR or press the button it will show you several …
End the test with “ctrl+c””It always print “…” for me.
That means that there is a movement all time right?
even if I disconnect the GPIO Pin there are all the dots…
i Realy cant figure out what i do wrong in this case… i mean it is only copy and paste and i did it the third time right now. also tried the MMM-PIR-Sensor module… not happy with it.i realy dont know what to do now!
-
Not much time, so here comes just a short think…
-
You have two cogs on the pir. Move the time delay completely left or right (so it will just give a very short impulse).
-
Set the Shutoff-delay in the script to 5 seconds (just to try)
-
Try another GPIO…
-
try a pull-up or pull-down resistor like used at thy button-method
-
-
@cruunnerr oh my god… i love you
it was realy just the Time-delay Adjust!!!
i turned it completly left and it seems to work now!but i have to say i must work with the command display_power=0 - display_power=1
so if the hdmi turns off my display shows for 1 second no signal
if the display turns on it shows HDMI1
but thats fine… i guess it is a “problem” of the display itself.thank you for the fast and easy response
your tutorial is realy great i love it. also a noob can work with it!
maybe you should add a line with a tip for the Time-delay Adjust
-
@cruunnerr Hello, My PIR works completely fine (with method #6, just turn black) but I also plan to build my mirror as floor mirror and wondering the same as @blebbens
I tried your suggestion but unfortunately doesn’t seems to work. the screen is on instantly if motion detected. Any other suggestion?