MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. yep_DD
    3. Posts
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.
    Y
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 4
    • Posts 57
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Strip Down Guide for BenQ 28" VA Monitor GC2870H

      @bachoo786 apparently it also depends on the quality of the sensor, I ordered a batch on ebay and got lucky with one where I have to get really close to the glass to trigger it. at first I thought I would change it, but now I am satisfied because it fits the purpose of just activating in case the mirror is off and the other power-on / off logic didn’t work (guests at home). But if I had to redesign I would not use a sensor at all as my other ways of powering the mirror seem far more integrated, e.g. I do not want to see the mirror turn on and / off as this disturbs the design.

      posted in Hardware
      Y
      yep_DD
    • RE: Strip Down Guide for BenQ 28" VA Monitor GC2870H

      Hi @bachoo786

      thank you so much. As @MadScientist pointed out the three pins are connected directly to the Raspberry. For evaluating the state I use a small http server (see below). The important parts are where the you can find anything with

      monitorStatus
      

      If you want I can reduce the code to what is important for you. This is the complete server which allows control of

      • ARD Livestream
      • ARD Tagesschau
      • Lowering / Increasing volume
      • Radar Sensor (just the last couple lines of code (search for: GPIO.add_event_detect)
      • Powerin On / Off Monitor by http Request (used if no one is at home / and at night)

      For me the radar sensor is just a backup. I use the power control mainly like this:

      • If someone is at home and it is between sunrise / sunset, turn on the monitor(1)
      • If someone is at home but it is night and all lights are off, turn off the monitor(1)
      • If someone is in front of the monitor turn it on by radar

      (1) is done via FHEM (a home automation running on another raspberry, it calls my mirror like this: 10.0.1.49/on (monitor on) 10.0.1.49/off (monitor off) 10.0.1.49/up or /down (for volume) and so on.

      #!/usr/bin/python3 -u
      host_name = '10.0.1.49'  # Change this to your Raspberry Pi IP address
      host_port = 8000
      proc = ''
      monitorstatus = 'unknown'
      
      import RPi.GPIO as GPIO
      from pathlib import Path
      import os
      import subprocess
      import signal
      from subprocess import call
      from time import sleep
      from http.server import BaseHTTPRequestHandler, HTTPServer
      
      
      SENSOR_PIN = 24
      
      GPIO.setmode(GPIO.BCM)  
      GPIO.setup(SENSOR_PIN, GPIO.IN) 
      
      class MyServer(BaseHTTPRequestHandler):
      
          def monitor_on(channel): #define initial status of Monitor
              if monitorstatus!="on":
                  status='Monitor on by Radar Sensor'
                  #monitorstatus='on'
                  subprocess.Popen(["/usr/bin/vcgencmd", "display_power", "1"], preexec_fn=os.setsid)
      
          def do_HEAD(self):
              self.send_response(200)
              self.send_header('Content-type', 'text/html')
              self.end_headers()
      
          def do_GET(self):
              global proc
              global monitorstatus
              html = '''
                 <html>
                 <body style="width:960px; margin: 20px auto;">
                 <h1>Magic Mirror Control</h1>
                 <p>Current GPU temperature is {}</p>
                 <p>Podcast: <a href="/play">Play</a> <a href="/stop">Stop</a></p>
                 <p>ARD Livestream: <a href="/ard">Play</a> <a href="/stop">Stop</a></p>
                 <p>Volume: <a href="/down">down</a> <a href="/up">up</a></p>
                 <p>System: <a href="/shutdown">Shutdown</a> <a href="/restart">Restart</a></p>
                 <p>Monitor: <a href="/on">On</a> <a href="/off">Off</a></p>
                 <div id="podcast-status"></div>
                 <script>
                     document.getElementById("podcast-status").innerHTML="{}";
                 </script>
                 </body>
                 </html>
              '''
              temp = os.popen("/opt/vc/bin/vcgencmd measure_temp").read()
              self.do_HEAD()
              status = ''
              if self.path=='/':
                  #GPIO.setmode(GPIO.BCM)
                  #GPIO.setwarnings(False)
                  #GPIO.setup(17, GPIO.IN)
                  status='nothing'
              elif self.path=='/play':
                  if proc=='':
                      my_file = Path("/home/pi/MagicMirror/video.mp4")
                      if my_file.is_file():
                          statinfo = os.stat('/home/pi/MagicMirror/video.mp4')
                          if statinfo.st_size > 0:
                              proc = subprocess.Popen(["omxplayer", "-o", "alsa:hw:ALSA", "--no-osd", "/home/pi/MagicMirror/video.mp4"], preexec_fn=os.setsid)
                              status='Playing Podcast'
                          else:
                              proc = subprocess.Popen(["omxplayer", "-o", "alsa:hw:ALSA", "--no-osd", "/home/pi/MagicMirror/Loading.mp4"], preexec_fn=os.setsid)
                              status='Not yet available'
                      else:
                          proc = subprocess.Popen(["omxplayer", "-o", "alsa:hw:ALSA", "--no-osd", "/home/pi/MagicMirror/Loading.mp4"], preexec_fn=os.setsid)
                          status='Not yet available'
                  else:
                      status='Stopping Podcast'
                      os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
                      proc=''
              elif self.path=='/ard':
                  if proc=='':
                      proc = subprocess.Popen(["livestreamer", "hlsvariant://daserste_live-lh.akamaihd.net/i/daserste_de@91204/master.m3u8", "best", "-vnp", "omxplayer -o alsa:hw:ALSA --no-osd --timeout 20"], preexec_fn=os.setsid)
                      status='Playing ARD Livestream'
                  else:
                      status='Stopping Stream'
                      os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
                      proc=''
              elif self.path=='/stop':
                  if proc!='':
                      status='Stopping Podcast'
                      os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
                      proc=''
                  else:
                      status='Nothing to stop'
              elif self.path=='/shutdown':
                  status='Shutdown'
                  subprocess.Popen(["sudo", "shutdown", "-h", "now"], preexec_fn=os.setsid)
              elif self.path=='/restart':
                  status='Restart'
                  subprocess.Popen(["sudo", "reboot"], preexec_fn=os.setsid)
              elif self.path=='/down':
                  status='Volume down'
                  subprocess.Popen(["amixer", "set", "Master", "8%-"], preexec_fn=os.setsid)
              elif self.path=='/up':
                  status='Volume up'
                  subprocess.Popen(["amixer", "set", "Master", "8%+"], preexec_fn=os.setsid)
              elif self.path=='/on':
                  if monitorstatus!="on": #switch on Monitor if status was off (by httpRequest NOT Radar)
                      status='Monitor on'
                      monitorstatus='on'
                      subprocess.Popen(["/usr/bin/vcgencmd", "display_power", "1"], preexec_fn=os.setsid)
              elif self.path=='/off':
                  if monitorstatus!="off": #switch off Monitor if status was on  (by httpRequest NOT Radar)
                      status='Monitor off'
                      monitorstatus='off'
                      subprocess.Popen(["/usr/bin/vcgencmd", "display_power", "0"], preexec_fn=os.setsid)
              self.wfile.write(html.format(temp[5:], status).encode("utf-8"))
      
      
      if __name__ == '__main__':
          http_server = HTTPServer((host_name, host_port), MyServer)
          print("Server Starts - %s:%s" % (host_name, host_port))
      
          try:
              GPIO.add_event_detect(SENSOR_PIN , GPIO.RISING, callback=MyServer.monitor_on) #detect radar sensor and enable Monitor
              http_server.serve_forever()
          except KeyboardInterrupt:
              http_server.server_close()
      GPIO.cleanup()
      
      
      posted in Hardware
      Y
      yep_DD
    • RE: Strip Down Guide for BenQ 28" VA Monitor GC2870H

      @daniel3490 hi Daniel, it is bit hard to take down the mirror by myself, i have to wait until I have a friend over to help me. I don’t really see the edges of my monitor unless it is really really dark.

      posted in Hardware
      Y
      yep_DD
    • RE: Anyone else experiencing issues after updating Raspbian (black screen and wifi dropping)

      @mwel1977 let me know if it worked :). Was it “600 and yes” before the change?

      posted in Troubleshooting
      Y
      yep_DD
    • RE: Anyone else experiencing issues after updating Raspbian (black screen and wifi dropping)

      For Wifi Problems I added:

      iwconfig wlan0 power off
      

      to

      sudo nano /etc/rc.local
      

      now checking the output with

      iwconfig wlan0
      

      gives me:

      Power Management:off
      

      let’s see if it is solved.

      posted in Troubleshooting
      Y
      yep_DD
    • RE: Anyone else experiencing issues after updating Raspbian (black screen and wifi dropping)

      Solution for screensaver blanking:

      add:

      @xset s noblank 
      @xset s off 
      @xset -dpms
      

      to:

      /home/pi/.config/lxsession/LXDE-pi/autostart
      

      Note: setting it in

       /etc/xdg/lxsession/LXDE-pi/autostart or /etc/xdg/lxsession/LXDE/autostart 
      

      did not work anymore, the user files take precedence.

      I don’t know why it changed with the latest Raspbian Update or what I did wrong, but if I don’t add the xset commands as above and check with

      DISPLAY=:0 xset -q
      

      the screensaver stays enabled. If you guys need to verify it is disabled, just run the above command and check if the following lines appear like that:

      Screen Saver:
        prefer blanking:  no    allow exposures:  yes
        timeout:  0    cycle:  600
      
      DPMS (Energy Star):
        Standby: 600    Suspend: 600    Off: 600
        DPMS is Disabled
      

      If blanking and timeout are yes and not 0 the screensaver is active (DPMS should also show disabled)

      posted in Troubleshooting
      Y
      yep_DD
    • RE: Anyone else experiencing issues after updating Raspbian (black screen and wifi dropping)

      Update: it seems all the xset options I set are now being ignored, manually disabling the screensaver brings the mirror back.

      Update2: It seems also the wifi connections now gets reset every couple of minutes which may cause the resolve error I saw earlier in the logs

      posted in Troubleshooting
      Y
      yep_DD
    • Anyone else experiencing issues after updating Raspbian (black screen and wifi dropping)

      Hi guys,

      I have updated Raspbian yesterday and ever since my mirror runs for a few minutes and then the screen goes blank. Nothing is in the logs and electron is still running. When I restart it -occassionally- I get resolve errors for github and stuff like that. But pin g / curl and everything works fine via shell.

      edit: Webinterface is running. Could it be that the screensaver is active? I have always had it disabled in the LXDE and LXDE-pi config.

      Any ideas?

      KR,

      Stephan

      posted in Troubleshooting
      Y
      yep_DD
    • RE: Strip Down Guide for BenQ 28" VA Monitor GC2870H

      @madscientist okay, so after a couple of days I am absolutely satisfied. I turn on my monitor with a small httpserver python script whenever someone is at home and -if it is night- any HUE light is on. I am now thinking of changing this to different energy saving modes in my magicmirror:

      • Always On
      • On when someone is home
      • On when someone is home and any light is on (turns off at night)
      • Only on when activated by PIR / Radar Sensor

      0_1540763201051_Screenshot 2018-10-28 at 22.46.15.png

      posted in Hardware
      Y
      yep_DD
    • RE: Strip Down Guide for BenQ 28" VA Monitor GC2870H

      @adrien Okay, so it is about 3 seconds boot time I am estimating. No logo anymore. Just the annoying “HDMI1” screen on the lower right. Let’s see if that satisfies me or I will cut the wires as well. Have you tried yet?

      posted in Hardware
      Y
      yep_DD
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 2 / 6