MMM-Ring: Displays a video stream of your Ring doorbell when someone rings your doorbell.



  • Description
    Whenever someone rings your doorbell by pressing the button on your ring device, a video will appear wherever the module is placed within MM. This module will only work for ding events and will not do anything for motion events. Whenever there is no video being displayed nothing else is shown in its place.

    Download :


  • Project Sponsor Module Developer



  • Hi I cant get the module to work - it comes up with the following error in the logs, can you advise?

    
    MMM-Ring at (06/10/2019, 22:22:19): Found 1 location(s) with 1 camera(s).
    MMM-Ring at (06/10/2019, 22:22:19): Location Home has the following 1 camera(s):
    MMM-Ring at (06/10/2019, 22:22:19): - 7076807: Front Door (doorbell_v3)
    MMM-Ring at (06/10/2019, 22:22:19): Location Home has the following 0 device(s):
    MMM-Ring at (06/10/2019, 22:22:19): Actively listening for doorbell presses
    MMM-Ring at (06/10/2019, 22:22:45): Front Door had its doorbell rung! Preparing video stream.
    Whoops! There was an uncaught exception...
    { Error: spawn ffmpeg ENOENT
        at Process.ChildProcess._handle.onexit (internal/child_process.js:229:19)
        at onErrorNT (internal/child_process.js:406:16)
        at process._tickCallback (internal/process/next_tick.js:63:19)
      errno: 'ENOENT',
      code: 'ENOENT',
      syscall: 'spawn ffmpeg',
      path: 'ffmpeg',
      spawnargs:
       [ '-hide_banner',
         '-protocol_whitelist',
         'pipe,udp,rtp,file,crypto',
         '-f',
         'sdp',
         '-i',
         'pipe:',
         '-acodec',
         'aac',
         '-vcodec',
         'copy',
         '-preset',
         'veryfast',
         '-g',
         '25',
         '-sc_threshold',
         '0',
         '-f',
         'hls',
         '-hls_time',
         '2',
         '-hls_list_size',
         '6',
         '-hls_flags',
         'delete_segments',
         '/home/pi/MagicMirror/modules/MMM-Ring/public/stream.m3u8' ] }
    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
    
    


  • You’ll need to install ffmpeg. I’m assuming you’re using a pi with Raspbian. If so, you can run the following in the terminal:

    sudo apt-get install ffmpeg
    

    If not, you’ll need to find how to install ffmpeg with whatever OS you’re running.



  • I’m running MM via Docker on a NAS and can’t seem to figure out how to get Docker to use ffmpeg from the OS. Does anyone have any ideas on how to do this?



  • @DustinBryant Thanks, i have installed but still not working. I get the files in the public folder but still no video



  • Interesting, are any errors printed in the terminal and if none there, are there any errors in the Electron debugger log after running?



  • @DustinBryant This is what the mm log shows:

    MMM-Ring at (10/10/2019, 20:59:55): Found 1 location(s) with 1 camera(s).
    MMM-Ring at (10/10/2019, 20:59:55): Location Home has the following 1 camera(s):
    MMM-Ring at (10/10/2019, 20:59:55): - 7076807: Front Door (doorbell_v3)
    MMM-Ring at (10/10/2019, 20:59:55): Location Home has the following 0 device(s):
    MMM-Ring at (10/10/2019, 20:59:55): Actively listening for doorbell presses

    Then i press the doorbell:

    MMM-Ring at (10/10/2019, 21:00:04): Front Door had its doorbell rung! Preparing video stream.
    MMM-Ring at (10/10/2019, 21:00:26): Front Door video stream has ended
    Whoops! There was an uncaught exception…
    TypeError: Cannot read property ‘stop’ of null
    at Timeout.setTimeout [as _onTimeout] (/home/pi/MagicMirror/modules/MMM-Ring/node_helper.js:153:36)
    at ontimeout (timers.js:427:11)
    at tryOnTimeout (timers.js:289:5)
    at listOnTimeout (timers.js:252:5)
    at Timer.processTimers (timers.js:212:10)
    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

    No video is displayed on the MagicMirror.

    Also I have specificed a 2 minute stream time in the config.js but as shown above, the video only shows it runs for 30 seconds…

    config.js:

                {
                        module: "MMM-Ring",
                        position: "top_left",
                        config: {
                                ringEmail: "EMAIL",
                                ringPwd: "PASSWORD",
                                ringMinutesToStreamVideo: "2", //default is 2 mins
                                ringVideoWidth: "600" //default is 600px
                        }
                },


  • Ok, so I 've fixed the error you’ve run into. The reason the stream could have stopped is because someone on the account looked at the ring event on the ring app and then stopped/closed it. Unfortunately, it’s basically a “shared” stream in that if applications are looking at the event at the same time one ended could potentially end the other viewing it prematurely. I’ve only had this happen once and that seemed to be what that was.

    I made some other small changes which may help here as well. I’d like for you to update all your software first though just to rule that out as well.

    Before doing any of the following I would recommend backing up.

    1. Update your pi OS to the latest version
      sudo apt-get update
      sudo apt-get upgrade
      sudo reboot
    2. Update MagicMirror to its latest version by using a Terminal to navigate to your MagicMirror folder and running
      git pull && npm install
    3. Navigate to the module/MMM-Ring folder and run
      git pull && npm install

    This will update everything, hopefully. Now try running MagicMirror again, giving it a couple seconds to a minute, and then ring your doorbell again.

    Hope this helps!



  • @sithlordhood you should use my update script… takes care of a bunch of problems

    see here for instructions

    https://forum.magicmirror.builders/topic/10859/new-update-upgrade-script-ready-for-testing