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

shbatm

@shbatm

Module Developer
78
Reputation
5.1k
Profile views
208
Posts
3
Followers
0
Following
Joined May 9, 2017, 8:59 PM
Last Online Feb 23, 2022, 9:50 PM
Location Texas, USA

shbatm Unfollow Follow
Module Developer

Best posts made by shbatm

  • [MMM-OnScreenMenu] Simple On-Screen Menu for controlling the MagicMirror²

    Description

    The MMM-OnScreenMenu Module provides a small, customizable, material-style floating action button menu for controlling the MagicMirror².

    Basic Functions:

    1. Control the power to the screen (On/Off/Toggle).
    2. Manage the Mirror (Shutdown/Reboot/Restart MM²/Refresh Window).
    3. Module Visibility (Show/Hide/Toggle).
    4. Send Notifications to Other Modules:
      • Switch Profiles in MMM-ProfileSwitcher
      • Perform other module functions from a button in the menu.

    The menu is designed to be controllable from multiple devices:

    • Mouse Control
    • Touchscreen Control
    • Keyboard Control
    • Bluetooth Remote via MMM-KeyBindings
    • Module Notifications from other modules

    Screenshots

    SEE LIVE DEMO/MOCKUP HERE: https://codepen.io/shbatm/pen/OggMbr/



    First: Touch Mode; Middle: Hidden/Mouseover Mode; Last: Demo

    Download:

    [card:shbatm/MMM-OnScreenMenu]


    Version 0.1.3

    • Added menu options for minimizing, toggle fullscreen mode, opening DevTools, stopping MM via PM2,
    • Added delayed menu items (e.g. call a function after a certain timeout–like to turn off the mirror after X seconds)
    • Added external control of the menu/functions from other modules via notifications–includes the ability to call any function the module knows how to handle, even if it’s not in the menu. This lets you use modules like MMM-Buttons or MMM-MPR121 to control the menu.

    Version 0.0.9

    • Initial Public Release for Testing – please let me know via this thread or GitHub Issues if you find any bugs or have any feature requests; always open to feedback!
    posted in Utilities
    S
    shbatm
    Jun 24, 2017, 1:35 AM
  • [MMM-Logging] Module for better Node.js console logging with Timestamps and Function Calls

    Description:

    This is a simple module which extends the Node.js console logging capabilities of the MagicMirror² project through implementation of the tracer Node.js module, including adding timestamps, call sources, and stack traces.

    By default, this module will intercept and format ALL console log messages from the MagicMirror instance once it is loaded so no additional changes need to be made to individual modules. If they log output using the standard console.log() or console.error() they will be reformatted and pretty printed.

    Examples:

    Before MMM-Logging:

    0|mm  | Starting MagicMirror: v2.6.0-dev
    0|mm  | Loading config ...
    0|mm  | Loading module helpers ...
    0|mm  | Initializing new module helper ...
    0|mm  | Module helper loaded: MMM-Logging
    0|mm  | No helper found for module: alert.
    

    After MMM-Logging:

    0|mm  | Starting MagicMirror: v2.6.0-dev
    0|mm  | Loading config ...
    0|mm  | Loading module helpers ...
    0|mm  | 2018-12-05T12:42:51 <log> Initializing new module helper ... (js/app.js:128 loadModule)
    0|mm  | 2018-12-05T12:42:51 <log> Module helper loaded: MMM-Logging (js/app.js:161 loadNextModule)
    0|mm  | 2018-12-05T12:42:51 <log> No helper found for module: alert. (js/app.js:163 )
    

    Download:

    [card:shbatm/MMM-Logging]


    Current Version: 1.0.1 – CHANGELOG

    posted in System
    S
    shbatm
    Dec 5, 2018, 6:59 PM
  • [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras

    Description

    This module will show a live RTSP video stream and/or periodic snapshots on the Magic Mirror from any IP Security Camera which supports the RTSP protocol and/or can serve a snapshot periodically.

    Features:

    • Supports single or multiple camera streams/snapshots
    • For multiple streams: supports rotating through streams in a single window or displaying multiple windows (with customizeable layout)
    • Supports fetching snapshots from a file or url when not actively streaming
    • Flexible configurations to limit resource use on Raspberry Pi –
      • Stops all streams when module is hidden
      • Option for AutoPlay or manual starting of stream
      • Plays one or all streams (when displaying multiple)
      • ffmpeg process only started when active stream window is shown and customizeable delay for shutdown after stopping.
      • Note: 3 simultaneous streams on a RaspberryPi 3 is about the limit for usability.
    • Support for MMM-KeyBindings module for Play/Pause Remote Control and navigation of multiple streams

    Screenshot:

    Download:

    [card:shbatm/MMM-RTSPStream]


    Version 1.2.1 (Updated 15 Oct 2017)

    • Now uses hardware-accelerated OMXPlayer as default player for local video
    • Resolved latency issues
    • Uses PM2 to control stream playback – automatically restarts streams when they close
    • Fullscreen, custom window and offset options now available.
    • Important - please update your configurations after updating this module. A new configuration tool is available, see the README on GitHub for info.

    Version 1.0.0

    • Initial Release – Please submit bugs and issues via GitHub Issues
    posted in Utilities
    S
    shbatm
    Jun 10, 2017, 5:26 PM
  • [MMM-Remote-Control](v2-dev) Extensible REST API, Dynamic Menus, and Socket Communications, plus other updates

    Description

    I created an updated version of @Jopyth’s excellent MMM-Remote-Control module with an extensible REST API for controlling everything about your mirror, as well as an upgrade of the /remote.html tool to use the module’s node_helper socket connection for communication back and forth–instead of get/post calls.

    Example REST Calls:

    Turn on the monitor

    GET /api/monitor/on  (curl -X GET 'http://magicmirror:8080/api/monitor/on')
    

    Hide All Modules

    GET /api/modules/all/hide (curl -X GET 'http://magicmirror:8080/api/modules/all/hide')
    

    Here’s the link to the API README and API Documentation. The API also includes the ability to automatically interpret other modules’ anticipated notifications to create a “guessed” API to control it (created from MMM-API). Modules’ can also send a notification to this module to explicitly declare their own API actions.

    This is still in testing, and I’m still adding a few features, but I wanted to share in case anyone is interested in testing as well.

    Inspiration

    I’ve now written several modules and end up constantly including similar functions into my code (things like monitor control, module switching, etc.) for the different modules and I wanted to start migrating to a “One Remote to Rule Them All”-style module. @Jopyth’s module is an awesome base with a lot of the functions needed already built in, but I also wanted to have a better RESTful interface (inspired by @juzim’s MMM-API module natively incorporated) so I could control the mirror from my home automation devices. Eventually, I’ll scrub my other modules like MMM-OnScreenMenu and MMM-KeyBindings to just call the functions from this module and keep them focused on their own key features.

    Download

    [card:shbatm/MMM-Remote-Control]
    Recommend using the Develop Branch for most recent changes.

    Key Features and Changes

    Added:

    • REST API interface for controlling all aspects of the MagicMirror from HTTP RESTful-style GET and POST calls, based on principles from MMM-Api
      • Full API Documentation at API/README.md
      • Extensible Actions – Interprets other modules’ notifications to “guess” an API, but also allows a module to explicitly provide API actions to use.
    • Live daily updates of modules.json from the MagicMirror wiki, based on @eouia’s MMM-Remote-Control-Repository.
    • Incorporated some features found in MMM-OnScreenMenu that were not originally in this module.
      • Monitor (Connected Screen) On-Off Status and Toggle
      • If using Electron: Open Dev Tools, Minimize, Toggle Fullscreen
    • Configuration Option to send custom shell commands to use. Currently, only custom monitor on/off/status commands are supported. Addresses PR #99.

    Changed:

    • Updates to remote.html and the node_helper.js to use direct SocketIO communication back and forth instead of separate HTTP calls.
      • Future framework for following PM2 logs and more live update options.
    • General clean-up and standardization of status reporting for GET and POST calls, to original URLs and to new API URLs.
    • Updated to ES2015 (ES Version 6) function calls in most locations.
    • Added USER_PRESENCE controls from AgP42, PR #84
    • Added translations from BKeyport, PR #103
    • Added SHOW/HIDE/TOGGLE ALL modules option per request from Rene1709, Issue #101
    posted in Development
    S
    shbatm
    Dec 21, 2018, 12:51 PM
  • [octomirror-module] Monitor & Control an OctoPrint 3D Printer Server

    Description:

    Monitor & Control an OctoPrint 3D Printer Server. Originally created by @DongerZonnie, expanded & updated by @shbatm

    The module will allow you to:
    View a live feed of the raspicam stream
    Start and stop prints
    View G-Code viewer
    Manually control the printer
    Recieve live updates on printer status

    Screenshots:

    Download:

    [card:shbatm/octomirror-module]


    Version 1.0.4

    • Implemented translations feature and added English & German
    • Added ability to show most recent temperatures
    • Added ability to hide additional details when the printer is offline.

    Version 1.0.3

    • Added options to disable camera feed and customize stream URL.

    Version 1.0.2

    • Refactored to use OctoPrint Client JS library and provide live updates via SockJS connection.
    posted in Productivity
    S
    shbatm
    Jan 17, 2018, 6:54 PM
  • MMM-KeyBindings: Control your mirror with Amazon Fire Stick Remote and Generic Keyboard Inputs

    Description:

    MMM-KeyBindings is a Utility Module to accept inputs from an Amazon Fire Stick Remote (or any bluetooth-connected HID device) as well as generic keyboard inputs and pass them to other modules for control.
    0_1494777951798_fire_stick_remote.jpg

    The module can perform basic functions such as turning on/off the screen based on certain remote keys, but the real power is in the ability to send key press notifications to other modules. My plan is to use this to control other plugins such as my fork of @barnabycolby’s MMM-Carousel (Fork w/ Navigation Enabled: MMM-Carousel w/ KeyBindings and MMM-ProfileSwitcher to switch screens based on remote control input. In the future I also plan to add an on-screen menu with functions similar to those found in the MMM-RemoteControl module.

    See the README for full details on the features.

    Download:

    [card:shbatm/MMM-KeyBindings]

    Version 1.3.0 - Updated 3-Jan-2019 - [BREAKING CHANGES] See details here

    posted in Utilities keyboard remote control fire stick remote bluetooth
    S
    shbatm
    May 14, 2017, 4:12 PM
  • Restarting MM² when config.js file changes

    This has been helpful for me, but I didn’t see it mentioned anywhere, so I thought I’d share. For anyone looking for a simple way to automatically restart your MM² when you change the config.js file:

    Note: This assumes you are using pm2 to start the server, as described here: Auto Starting MagicMirror

    1. Create a file in the same location as your mm.sh script called mm.json.
    2. Paste the contents of this gist into the file (adjust if needed for your setup).
    3. Run pm2 stop mm && pm2 delete mm to stop & remove the current mm script.
    4. Run pm2 start mm.json to restart MM. Now any time you change config.js, pm2 will automatically restart the process.
    5. Run pm2 save to save your changes for the next reboot.

    That’s it!

    Originally inspired by: Restart Mirror?

    posted in Troubleshooting
    S
    shbatm
    Jul 9, 2017, 7:57 PM
  • [MMM-ISY] Graphical Home Automation Status and Control for ISY Users

    Description:

    Inspired by the MMM-OpenHABFloorplan module, this is a module for the MagicMirror² to connect to an ISY device from Universal Devices (http://www.universal-devices.com) using a WebSocket. It will display a floor plan showing live updates of which Insteon, Z-Wave, or ISYv5 Node Server devices are turned on/off (including dimming levels), which alarm zones are tripped, and the status of the thermostats.

    Setup takes a little while as you have to create your own floorplan in SVG (Scalable Vector Graphics) format using something like Inkscape or Adobe Illustrator. It can be as simple or as complex as you want it to be, the most important thing is the tagging. Whatever style you make your lights, lamps, outlets, or devices–as long as you tag them with the correct ISY address format–they will be picked up by the module automatically and their status updated on the graphic. The screenshots above are an “extreme” example SVG image which was created from an AutoCAD blueprint originally, with icons from various sources dropped in to represent the devices. The config options for the module give you even more advanced control, by letting you set custom display options for the different devices.

    New in version [1.0.7]+ – Control popups can now be enabled for various devices, to directly control your home automation from a touchscreen or any web browser with the MagicMirror page loaded.

    Screenshots:

    Live view:

    Download:

    [card:shbatm/MMM-ISY]


    Version 1.0.7 - Initial Controls Implementation

    Added: Initial implementation of a control system using Bootstrap 4 to display tooltip style popups when devices are clicked.

    Version 1.0.0

    • Initial Release

    [EDITED 27-APR-18 WITH NEW VERSION]

    posted in Utilities isy home automation insteon thermostat floorplan
    S
    shbatm
    Jun 1, 2017, 5:08 PM
  • Check Statuses via JSON API Calls (MMM-JSONStatusChecker)

    Description:

    MMM-JSONStatusChecker will periodically call a URL and display a “true / false” (or “connected / disconnected”) status based on the results of a value in a JSON response from the API call.

    Multiple instances of the module can be used to call different URLs/APIs using the same background helper. Each instance has it’s own configuration and refresh time.

    See the config options on GitHub for full details, but everything can be customized; including: the key/value in the response being evaluated, the icon displayed, the CSS classes applied for true/false, the text for each status, and even whether or not to show an alert on status change.

    Screenshots:

    Download:

    [card:shbatm/MMM-JSONStatusChecker]


    Version 1.0.0

    • Initial Release;

    Please let me know if you find this useful. leave any comments or issues here or in the GitHub Repo Issues.

    posted in Utilities
    S
    shbatm
    Jun 3, 2017, 12:29 AM
  • RE: [MMM-OnScreenMenu] Simple On-Screen Menu for controlling the MagicMirror²

    New version posted with expanded options:

    Version 0.1.3

    • Added menu options for minimizing, toggle fullscreen mode, opening DevTools, stopping MM via PM2,
    • Added delayed menu items (e.g. call a function after a certain timeout–like to turn off the mirror after X seconds)
    • Added external control of the menu/functions from other modules via notifications–includes the ability to call any function the module knows how to handle, even if it’s not in the menu. This lets you use modules like MMM-Buttons or MMM-MPR121 to control the menu.

    See the full details of everything the menu can do on the GitHub README:

    [card:shbatm/MMM-OnScreenMenu]

    Remember to re-run npm install after updating:

    cd ~/MagicMirror/modules/MMM-OnScreenMenu
    git pull
    npm install
    
    posted in Utilities
    S
    shbatm
    Feb 10, 2018, 6:21 PM

Latest posts made by shbatm

  • RE: [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras

    All, I just wanted to check in and apologize for not only lack of support for this module but lack of response on here and on GitHub.

    Thank you for those who have been continuously trying to get others’ setups working. You are showing the true value of this community.

    I feel I at least owe a bit of an update, since I’ve been utterly frustrated before by developers who disappear without a trace, but officially: I am not planning on actively supporting this module any further.

    The underlying software for the OMXPlayer and VLC overlays are not under my control, and in several years of searching I have not found a “smooth” or “robust” way of maintaining a low-resource-demand RTSP Stream without significant lag, and I was a bit overwhelmed trying to make a one-size-fits-all module that worked for everything. I actually have only used the stills/snapshot feature of this module on my own mirror for the last year and a half, and found myself never using the live stream, that functionality has been delegated to my Home Assistant setups, which have people much better than me working on the Stream components.

    Both of my mirrors are also presently in pieces as part of a home move that is going terribly and coupled with a COVID-19-impacted work schedule (now working 2/3s of my days away from home), I will not have time to make any improvements to this module in the foreseeable future.

    I’m sorry to have to make this decision and will try and accept any Pull Requests outstanding and clean up the dev/master branches to be consistent. If there is someone willing to take over developing, I can transfer the repo to your fork.

    For those who have been continually helping to get streaming working for everyone on here, again, thank you, you are helping drive what this community is about (and helping me by knowing the countless hours put into this module have at least helped a few others).

    posted in Utilities
    S
    shbatm
    Sep 6, 2020, 3:49 AM
  • RE: [MMM-Remote-Control](v2-dev) Extensible REST API, Dynamic Menus, and Socket Communications, plus other updates

    @cr4z33 try adding them using the customCommands config setting (see the develop branch README.

    posted in Development
    S
    shbatm
    Feb 24, 2019, 6:53 PM
  • RE: a question about MMM-Remote-Control

    @robiv8 said in a question about MMM-Remote-Control:

    How I initialized?

    Short answer: If you restart the Mirror (from command line, computer, or remote), make sure you refresh the remote page after the Mirror loads, if you have the remote open on a different device.

    Long answer: For some functions to work properly, an instance of the MagicMirror page must be loaded first because the remote queries it for information and uses it to perform actions on other modules. The main page must be loaded before the remote page; or the remote page refreshed if the Mirror is restarted. This should usually be the case if you use the Mirror on a screen directly attached to the server (RPi). If you use a web browser on a different computer, open/refresh http://magicmirror:8080 first in another tab, before reloading http://magicmirror:8080/remote.html.

    posted in Troubleshooting
    S
    shbatm
    Feb 18, 2019, 2:51 AM
  • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

    @agp42 said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

    Did you create a dedicated post for your fork and API ?

    https://forum.magicmirror.builders/topic/9291/mmm-remote-control-v2-dev-extensible-rest-api-dynamic-menus-and-socket-communications-plus-other-updates

    @Jopyth is still the maintainer of MMM-Remote-Control, and I’ve sent a PR to have my changes included in the official repo; if he’s anything like me, this is a hobby and efforts on it come and go as time and other projects allow. Feel free to use my fork for now and if/when they get merged, I’ll let you know. I’ve been trying to include several Issue fixes in my branch as well to wrap them all up into 1 update.

    posted in Utilities
    S
    shbatm
    Feb 18, 2019, 2:45 AM
  • RE: [MMM-Remote-Control](v2-dev) Extensible REST API, Dynamic Menus, and Socket Communications, plus other updates

    @swvalenti Most of the changes are in the background with the API and are enabled by default, but the new front-end features have to be turned on in your config:

    {
        module: 'MMM-Remote-Control'
        // uncomment the following line to show the URL of the remote control on the mirror
        // , position: 'bottom_left'
        // you can hide this module afterwards from the remote control itself
        config: {
            customCommand: {},  // Optional, See "Using Custom Commands" below
            customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
            showModuleApiMenu: true, // Optional, Enable the Module Controls menu
            pm2ProcessName: "mm",  // Optional, if you don't use the default PM2 process, provide the name here.
            apiKey: "",         // Optional, See API/README.md for details
        }
    },
    
    posted in Development
    S
    shbatm
    Feb 18, 2019, 2:40 AM
  • RE: a question about MMM-Remote-Control

    If you are using the module_identifier to hide/show modules using notifications–changing your configuration will change the identifier. So if you had “alert” as the first module and “clock” as the second, but you flip-flop them, the identifiers would change from module_0_alert and module_1_clock to module_0_clock and module_1_alert and you would need to update the notifications sent from the other module.

    If you are just using the /remote.html page, you don’t need to worry about this. It will manage it.

    If you are using my fork and using notifications from other modules, you can also just use the module name, which doesn’t change (but this will affect all modules of that kind, if you have more than 1).

    posted in Troubleshooting
    S
    shbatm
    Feb 11, 2019, 3:48 AM
  • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

    @AgP42 Nice work!

    Just to let you know, I did a bunch of work on a version of MMM-Remote-Control that automatically exposes an API for controlling other modules, and each module can send a notification with it’s own capabilities/API. It sounds like a good use case for this module. Instead of maintaining a separate fork, you send a module notification on startup with the capabilities, and it will automatically add a menu item to the Remote Control as well as add an API path at http://magicmirrorip:8080/api/module/smartwebdisplay/. Right now you could accept a URL from the API, but I still haven’t implemented a custom payload from the remote (you can still send the play/pause/etc. commands.

    My fork

    https://github.com/shbatm/MMM-Remote-Control/tree/develop
    https://github.com/Jopyth/MMM-Remote-Control/pull/104

    API Details:

    https://github.com/shbatm/MMM-Remote-Control/tree/develop/API

    Use Case:

    https://github.com/shbatm/MMM-Carousel/blob/master/MMM-Carousel.js#L86

    posted in Utilities
    S
    shbatm
    Feb 11, 2019, 2:28 AM
  • RE: [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras

    @cr4z33 said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:

    “RTSP_ACTIVATE”: {
    notificationExec: {
    notification: “RTSP-PLAY”,
    payload: “all”
    }
    },

    Regarding the other issue we’ve been working through – I sent you a chat, but if you have this part in your config with the rest of the TV channels–take it out and see if that fixes the problem you’ve been having with the wrong stream.

    I think this is being called by AssistantMk2 after calling the individual stream.

    posted in Utilities
    S
    shbatm
    Feb 10, 2019, 1:19 PM
  • RE: Could use some assistance setting up MMM-Carousel w/ Navigation and understanding the architecture

    @robiv8 Strange. I wonder if it’s something with the word main. You could also try "Main".

    Here’s one of my carousel configs for another reference:

                    slides: {
                        Home: [{ name: 'clock', classes: 'zoom200', position: "middle_center", carouselId: 1 }],
                        Info: [{ name: 'clock', classes: 'zoom200', position: "top_center", carouselId: 1 },
                            { name: 'calendar', position: 'top_left' }, 'MMM-Todoist',
                            'MMM-DarkSkyForecast',
                            'newsfeed',
                        ],
                        Status: [{ name: 'clock', classes: '', position: "top_left", carouselId: 2 },
                            'MMM-JSONStatusChecker', "internet-monitor"
                        ],
                        ISY: [{ name: 'clock', classes: '', position: "top_left", carouselId: 2 }, 'MMM-ISY'],
                        Cameras: ["MMM-RTSPStream"],
                        Octopi: [{ name: 'clock', classes: '', position: "top_left", carouselId: 2 }, 'octomirror-module'],
                    }
    
    posted in Troubleshooting
    S
    shbatm
    Feb 10, 2019, 1:01 PM
  • RE: [MMM-Remote-Control](v2-dev) Extensible REST API, Dynamic Menus, and Socket Communications, plus other updates

    @robiv8 make sure your are on the develop branch (git checkout develop from a command line inside the module folder).

    https://github.com/shbatm/MMM-Remote-Control/blob/develop/node_helper.js#L988

    posted in Development
    S
    shbatm
    Feb 9, 2019, 2:03 PM
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