MagicMirror² v2.14.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.

  • Project Sponsor Module Developer

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

  • Project Sponsor Module Developer

    @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

Log in to reply