Multiple instances of MMM-DarkSkyForecast with MMM-pages



  • I have a 4" 800x480 screen, there’s not much real estate so I have MMM-pages set up. I want to have MMM-DarkSkyForecast on a few pages with different options, ie hourly forecast one page 1 and daily on page 2, and set MMM-pages auto scroll.

    {
      module: 'MMM-pages',
      config: { modules: [ ["calendar", "MMM-DarkSkyForecast"],
                            ["calendar", "MMM-DarkSkyForecast"] ],
                fixed: ["clock", "MMM-page-indicator"]}
              }
    },
    

    I’ve tried to clone to a different folder and rename MMM-DarkSkyForecast.js to match

    ...
       ["calendar", "MMM-dsf"],
    ...
    

    I have 2 configurations in config.js but in both instances the 2nd page doesn’t show the MMM-DarkSkyForecast module. Is what I’m trying to do possible?


  • Module Developer

    @popeofmope

    you have both modules (calendar & DarkSkyForecast) on both pages…

    try it like this:

    {
        module: 'MMM-pages',
        config: {
            modules: [ 
                ["calendar"],
                ["MMM-DarkSkyForecast"]
            ],
            fixed: ["clock", "MMM-page-indicator"]
        }
    },
    

    hope this helps



  • @justjim1220
    I’m trying to get 2 instances of MMM-DarkSkyForecast on 2 separate pages. Page 1 would display hourly forecast, page 2 would show daily forecast.

    I tried to clone a 2nd copy of the module to a separate folder ../modules/MMM-dsf and then rename the ../MMM-dsf/MMM-DarkSkyForecast.js to ../MMM-dsf/MMM-dsf.js and then configure the pages module as follows

    {
      module: 'MMM-pages',
      config: { modules: [ ["calendar", "MMM-DarkSkyForecast"],
                            ["calendar", "MMM-dsf"] ],
                fixed: ["clock", "MMM-page-indicator"]}
              }
    },
    


  • @popeofmope and u had a { module : …}, block for each instance, right? so before using pages, you should see two on the screen


  • Module Developer

    @popeofmope

    OK, sorry, I understand now…

    I am not too sure you can have more than one instance of that module shown on your MM at the same time. At least, I am not able to get it to work anyways.

    But, since you are wanting one to show the HOURLY and the other to show the DAILY, I would use MMM-darksky–hourly (https://github.com/jacquesCedric/MMM-darksky-hourly), then set MMM-DarkSkyForecast to only show the DAILY.

    EDIT: you are able to show 2 different instances of MMM-DarkSkyForecast, using the following code in your config.js…

    {
                disabled: false,
                module: "MMM-DarkSkyForecast", // HOURLY
                header: "Weather",
                position: "top_right",
                config: {
                    apikey: "Super_Secret_API",
                    latitude: "40.26189",
                    longitude: "-94.03534",
                    iconset: "4c",
                    concise: false,
                    showHourlyForecast: true,
                    hourlyForecastInterval: 3,
                    maxHourliesToShow: 3,
                    showDailyForecast: false,
                    maxDailiesToShow: 3,
                    forecastLayout: "tiled"
                }
            },
            {
                disabled: false,
                module: "MMM-DarkSkyForecast", // DAILY
                header: "Weather",
                position: "top_left",
                config: {
                    apikey: "Super_Secret_API",
                    latitude: "40.26189",
                    longitude: "-94.03534",
                    iconset: "5c",
                    concise: false,
                    showHourlyForecast: false,
                    hourlyForecastInterval: 3,
                    maxHourliesToShow: 3,
                    showDailyForecast: true,
                    maxDailiesToShow: 3,
                    forecastLayout: "tiled"
                }
            },
    

    this is the result I have with it…
    0_1554765905870_Screenshot (57).png



  • he copied the model to a new name MMM-dsf

    and then put two modules into config… well… not sure… cause I don’t see the config info only the pages info

    {
      module: 'MMM-pages',
      config: { modules: [ ["calendar", "MMM-DarkSkyForecast"],
                            ["calendar", "MMM-dsf"] ],
                fixed: ["clock", "MMM-page-indicator"]}
              }
    },
    

  • Module Developer

    @popeofmope

    you need to add this to your pages module to get it to auto scroll:

    animationTime: 1000,
    rotationTime: 30 * 60 * 1000,
    rotationDelay: 500
    

    like so…

    {
      module: 'MMM-pages',
      config: {
        modules:
        [ 
          ["calendar", "MMM-DarkSkyForecast"],
          ["calendar", "MMM-DarkSkyForecast"]
        ],
          fixed: ["clock", "MMM-page-indicator"],
          animationTime: 1000,
          rotationTime: 30 * 60 * 1000, // this is to change the page every 30 minutes, 
          rotationDelay: 500
      }
    },
    


  • @justjim1220 Since I have such small screen real estate I wanted page 1 to exactly mirror page 2 except for the hourly vs daily forecast display, and then have MMM-Pages auto rotate the pages. Seems this might not be possible…


  • Module Developer

    @popeofmope
    what time frame between rotations?
    You can also use https://github.com/edward-shen/MMM-page-indicator to manually change the pages
    I use both so if I want to see a different page and not have to wait the 30 minutes between rotations, I can just click on the page indicator to show the page I want to see

    What you are asking is doable 😉


  • Module Developer

    @popeofmope

    OK…

    I think I got pretty close to what you are asking for…
    Page 1
    0_1554785446100_Screenshot (60).png

    Page 2
    0_1554785469498_Screenshot (61).png

    modules: [{
                module: "alert",
            },
            {
                module: "updatenotification",
                position: "top_bar"
            },
            {
                module: 'MMM-Cursor',
                config: {
                    timeout: 1000
                }
            },
            {
                module: 'MMM-pages',
                config: {
                    modules: [
                        ["calendar", "MMM-DarkSkyForecast"],
                        ["calendar", "MMM-DarkSkyForecast2"]
                    ],
                    fixed: ["clock", "MMM-page-indicator"],
                    animationTime: 1000,
                    rotationTime: 3 * 60 * 1000, // this is to change the page every 3 minutes, 
                    rotationDelay: 500
                }
            },
            {
                module: 'MMM-page-indicator',
                position: 'bottom_bar',
                config: {
                    pages: 2
                }
            },
            {
                module: "clock",
                position: "top_center"
            },
            {
                module: "calendar",
                header: "Holidays",
                position: "top_left",
                config: {
                    colored: true,
                    coloredSymbolOnly: true,
                    calendars: [{
                        url: 'https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics',
                        symbol: 'calendar',
                        auth: {
                            user: 'justjim1220@gmail.com',
                            pass: 'abcde12345',
                            method: 'basic'
                        }
                    }, ],
                }
            },
            {
                disabled: false,
                module: "MMM-DarkSkyForecast", // HOURLY
                header: "Weather - Hourly Forecast",
                position: "top_right",
                config: {
                    apikey: "abcde12345abcde12345abcde12345ab",
                    latitude: "40.26189",
                    longitude: "-94.03534",
                    iconset: "4c",
                    concise: false,
                    showHourlyForecast: true,
                    hourlyForecastInterval: 1,
                    maxHourliesToShow: 6,
                    showDailyForecast: false,
                    maxDailiesToShow: 3,
                    forecastLayout: "tiled"
                }
            },
            {
                disabled: false,
                module: "MMM-DarkSkyForecast2", // DAILY
                header: "Weather - Daily Forecast",
                position: "top_right",
                config: {
                    apikey: "abcde12345abcde12345abcde12345ab",
                    latitude: "40.26189",
                    longitude: "-94.03534",
                    iconset: "5c",
                    concise: false,
                    showHourlyForecast: false,
                    hourlyForecastInterval: 3,
                    maxHourliesToShow: 3,
                    showDailyForecast: true,
                    maxDailiesToShow: 6,
                    forecastLayout: "tiled"
                }
            },
    

    I hope this helps! 😉