MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

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

    Scheduled Pinned Locked Moved Utilities
    38 Posts 9 Posters 17.4k Views 12 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      DustinBryant
      last edited by

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

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sithlordhood @DustinBryant
        last edited by

        @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
                            }
                    },
        
        1 Reply Last reply Reply Quote 0
        • D Offline
          DustinBryant
          last edited by

          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!

          S S 2 Replies Last reply Reply Quote 0
          • S Offline
            sdetweil @DustinBryant
            last edited by

            @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

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • S Offline
              sithlordhood @DustinBryant
              last edited by

              @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?

              D 1 Reply Last reply Reply Quote 0
              • D Offline
                DustinBryant @sithlordhood
                last edited by

                @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:

                1. Run MagicMirror
                2. Minimize it
                3. Using file explorer navigate to the MagicMirror/modules/MMM-RING/public/
                4. Go ring your doorbell
                5. 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.

                1 Reply Last reply Reply Quote 0
                • S Offline
                  sithlordhood
                  last edited by

                  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!

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    sithlordhood
                    last edited by sithlordhood

                    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.m3u8

                    Regardless 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

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      DustinBryant
                      last edited by

                      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.

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        sithlordhood
                        last edited by

                        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

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 4 / 4
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy