Read the statement by Michael Teeuw here.
MMM-Ring: Displays a video stream of your Ring doorbell when someone rings your doorbell.
-
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 pressesThen 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/issuesNo 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.
- Update your pi OS to the latest version
sudo apt-get update
sudo apt-get upgrade
sudo reboot
- Update MagicMirror to its latest version by using a Terminal to navigate to your MagicMirror folder and running
git pull && npm install
- 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!
- Update your pi OS to the latest version
-
@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
-
@DustinBryant Thanks for all of the suggestions, I have followed this and now do not get any errors but i see no video on the mirror!
Anything else i can check?
-
@sithlordhood this one is a bit tough because I can’t recreate the issue you are having.
We can look at if the video is actually showing anything at all to determine if this is a sip session/ffmpeg issue or an issue on hls hooking into the video control and playing the stream. Try this:
- Run MagicMirror
- Minimize it
- Using file explorer navigate to the MagicMirror/modules/MMM-RING/public/
- Go ring your doorbell
- Once a .ts file gets dropped into the public location open/play it. Maybe check a couple as well.
Is there video of your doorbell camera when you play those?
BTW, they will all be like 2 second long videos each. The stream (m3u8) is what ties them into a continuous video by playing them serialized.
-
Hi, i have tried what you have suggested and a .ts file does get dropped in, I have tried to play it but it does not play, the file size is only 117 bytes.
I have tried this on a complete fresh system, running Raspbian Buster, with the current MM build, also this is the only module i have active in the config file. No video at all is shown on the mirror! help!
-
These are the files in the public folder once the doorbell is pressed. Note these files only appear once the log shows “Front door video stram has ended”
-rw-r–r-- 1 pi pi 0 Oct 31 20:10 stream0.ts
-rw-r–r-- 1 pi pi 117 Oct 31 20:10 stream.m3u8Regardless of the time set for “ringMinutesToStreamVideo” the log always shows a run of less than 30 seconds:
MMM-Ring at (10/31/2019, 8:09:42 PM): Front Door had its doorbell rung! Preparing video stream.
MMM-Ring at (10/31/2019, 8:10:03 PM): Front Door video stream has ended
timeout hit -
They don’t appear until ended? Wow, that’s a new one. You should definitely be getting them as soon as it says “Preparing video stream”.
This might be an authentication issue. Do you use 2 factor authentication with Ring by chance?
Check the debug console window for errors by running MagicMirror with using the following in the main MagicMirror folder:
npm start dev
This should start the MagicMirror with an additional window to the side that you can select the console and look for errors there.
-
I’m not using Two-Factor authentication.
This is the extract from the debug console window
main.js:454 Initializing MagicMirror.
translator.js:202 Loading core translation file: translations/en.json
translator.js:225 Loading core translation fallback file: translations/en.json
loader.js:179 Load script: modules/MMM-Ring//MMM-Ring.js
module.js:468 Check MagicMirror version for module ‘MMM-Ring’ - Minimum version: 2.1.0 - Current version: 2.9.0
module.js:470 Version is ok!
module.js:476 Module registered: MMM-Ring
loader.js:150 Bootstrapping module: MMM-Ring
loader.js:179 Load script: https://cdn.jsdelivr.net/npm/hls.js
loader.js:155 Scripts loaded for: MMM-Ring
loader.js:194 Load stylesheet: modules/MMM-Ring/MMM-Ring.css
loader.js:157 Styles loaded for: MMM-Ring
loader.js:159 Translations loaded for: MMM-Ring
loader.js:194 Load stylesheet: css/custom.css
main.js:472 All modules started!
module.js:156 MMM-Ring received a system notification: ALL_MODULES_STARTED
module.js:156 MMM-Ring received a system notification: MODULE_DOM_CREATED
module.js:156 MMM-Ring received a system notification: DOM_OBJECTS_CREATED
/home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/renderer/security-warnings.js:127 Electron Security Warning (Insecure Resources) This renderer process loads resources using insecure
protocols.This exposes users of this app to unnecessary security risks.
Consider loading the following resources over HTTPS or FTPS.- http://0.0.0.0:8080/css/main.css
- http://0.0.0.0:8080/fonts/roboto.css
- http://0.0.0.0:8080/socket.io/socket.io.js
- http://0.0.0.0:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js
- http://0.0.0.0:8080/js/defaults.js
- http://0.0.0.0:8080/config/config.js
- http://0.0.0.0:8080/vendor/vendor.js
- http://0.0.0.0:8080/modules/default/defaultmodules.js
- http://0.0.0.0:8080/js/logger.js
- http://0.0.0.0:8080/translations/translations.js
- http://0.0.0.0:8080/js/translator.js
- http://0.0.0.0:8080/js/class.js
- http://0.0.0.0:8080/js/module.js
- http://0.0.0.0:8080/js/loader.js
- http://0.0.0.0:8080/js/socketclient.js
- http://0.0.0.0:8080/js/main.js
- http://0.0.0.0:8080/fonts/node_modules/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Regular.woff2
- http://0.0.0.0:8080/translations/en.json
- http://0.0.0.0:8080/translations/en.json
- http://0.0.0.0:8080/modules/MMM-Ring//MMM-Ring.js
- http://0.0.0.0:8080/modules/MMM-Ring/MMM-Ring.css
- http://0.0.0.0:8080/css/custom.css
For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
warnAboutInsecureResources @ /home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/renderer/security-warnings.js:127
/home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/renderer/security-warnings.js:184 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
Policy set or a policy with “unsafe-eval” enabled. This exposes users of
this app to unnecessary security risks.For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
warnAboutInsecureCSP @ /home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/renderer/security-warnings.js:184