Skip to content
Module for MagicMirror that adds video feed of Ring Doorbell events
JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Sep 2, 2019
.gitignore Added node_modules to ignore Sep 2, 2019
LICENSE.txt Initial setup Aug 28, 2019
MMM-Ring.css Initial fully functioning module Sep 2, 2019
MMM-Ring.js Initial fully functioning module Sep 2, 2019 Update Sep 6, 2019
package-lock.json Upgraded ring-client-api to 5.6.2 Sep 5, 2019
package.json Upgraded ring-client-api to 5.6.2 Sep 5, 2019


This is a module for the MagicMirror².

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.


  • Must have an active Ring subscription
  • Only works with someone ringing your doorbell (no motion events).
  • There is a slight unavoidable delay (couple seconds) with the videos.
  • In your ring app, all of these events will show as answered rings. This may get fixed in the future.
  • You will not be able to interact, talk with, or hear the person on the other end through MM.
  • The RingAPI being used is unofficial which means there could be potential issues if Ring ever decides to make changes.
  • Though it will work most of the time, there are slight chances a video may not get picked up/streamed properly. This is due partly because of using an unoffical API and sometimes hls (video component used for streaming) picks up the stream too early or faults for other reasons.


  1. Using the terminal, navigate to your MagicMirror/modules folder
  2. Execute: git clone
  3. Navigate to this new folder cd MMM-Ring
  4. Execute: npm install

Using the module

To use this module, add the following configuration block to the modules array in the config/config.js file:

			module: "MMM-Ring",
			position: "middle_center",
			config: {

General configuration options

Option Description
ringEmail Required This is the username of your account
ringPwd Required This is the password for your account
ring2faRefreshToken Optional If your account uses 2fa you'll want to include your RefreshToken here. If you do not have 2fa then do not include this configuration.
ringMinutesToStreamVideo Optional How long a ding event video stream should last before ending. MAX 5 minutes!

Type: int(minutes)
Default: 2
ringVideoWidth Optional Width of the video display.

Type: string(px)
Default: "600"


(installed via npm install in the installation instructions above)


Huge thanks to dgreif on github for doing the reverse engineering to figure out how to get a video stream from a ring event (see ring-client-api dependency)). Without it, this module wouldn't be possible!

You can’t perform that action at this time.