MagicMirror² v2.5.0 is available! For more information about this release, check out this topic.

Tutorials or Overview for Module Dev?



  • I am looking to develop a module for my Mirror, for an Energy Monitor (SiteSage E-Monitor), and I have found the API specification that provides all of the information regarding the methods for the API.

    I was wondering if there exists a general overview of how to take the API methods that are outlined in the company’s specification, and turn it into a Module.

    From my high-level understanding, here is what I need to develop:

    • E-MonitorConfig.js
    • E-MonitorStyling.css --> which takes the data from the API call and turns it into the visualization for the magic mirror.

    Is there any general documentation or any high-level guidelines that I may be missing as I embark on this journey?



  • @nbrenn I found it really useful to find a module someone had already written and look at that as an example. I’ve now written a few simple modules that just pull data from web service and display it on screen. Feel free to fork any of them and pull them apart for ideas, the one I just submitted (MMM-AirNow) is pretty basic.




  • Moderator

    I’d like to jump in as well.
    How do you decide if a node_helper is required or if the module itself is sufficient? Is there any benefit or downside if you choose one way or the other?



  • @yawns I create only a node_helper if I need to use a npm dependency



  • Thanks for the responses, guys.

    The E-Monitor API specification has a listing of the supported API methods (page 3), like authenticate, deauthenticate, getCurrentData and so on.

    Aside from Module.register, getStyles, start: function(), and getDom, are these methods listed in the API specification the ones that I will use as functions in my code? For example:

    Module.resgister ("MMM-Emonitor.js", {
    },
    
    getStyles: function() {
    },
    
    start: function() {
    },
    
    getDom: function() {
    },
    
     // And then the EMonitor methods below:
    authenticate: function() { 
    }
    
    deauthenticate: function() {
    }
    
    getCurrentData: function() {
    }
    
    //... and so on down the list of the supported API methods