Read the statement by Michael Teeuw here.
Seperate Config for Web Access
-
TL;DR Is there a way to have a different config when the MM is accessed remotely via web vs what shows on the local display?
My magic mirror is set up to show clock data, weather data, info from a few temp sensors I have around the house. But I also use https://github.com/darickc/MMM-BackgroundSlideshow so it does double duty as a photo frame.
I also display the same info, minus the BackgroundSlideshow, on smaller screens that I have around the house (typically old tablets) using the web access. In order to not run the BackgroundSlideshow module on these secondary screens, I have to run a second instance – similar to what is described here: https://forum.magicmirror.builders/topic/15123/multiple-instances – which means my temp sensors have to send their data twice, my weather app has to make API calls twice, etc.
It would be great if there was a way to have only one MM instance, but display it’s info in two different configurations – one for local and one for remote.
-
@cweinhofer currently there is no way to have a different display output from the same config.
you can force a local css, which could hide some things, but weather on each will call into API twice
local css info
https://www.lostsaloon.com/technology/using-a-custom-stylesheet-in-a-web-browser/ -
@sdetweil Thanks for the suggestion. I was hopeful as the style inspector showed that I could pretty much do what I wanted with
.MMM-BackgroundSlideshow { display: none; }
Unfortunately, I wasn’t able to get it working based on the info in the link you sent. I did a little more digging and it looks like both Chrome and Firefox removed support for user stylesheets a few years back. My guess is that even if I could re-enable it (or find some extension that mimiced it) on the desktop, doing so on the mobile browser would probably be much difficult and/or impossible.
Do you know if the ability to have multiple configurations has been suggested before as a feature request? I’ve been mulling it over and I think I might have a way to implement this (in a limited sense) in a simpler way that wouldn’t require multiple config.js files.
-
@cweinhofer I have not seen such a request
the code loads all the modules and style sheets once
only thing I can think of is to have another module that can determine the client IP identity and use that to show/hide modules. as that is all mm can do currently
-
@cweinhofer try this… this what I was thinking before
https://www.trysmudford.com/blog/chrome-local-overrides/
it still works
then u could do like MMM-Pages
specify extra classes:
for the modules U want to show on client 1, and client 2
then in the overrides custom.css show that class
I think css is top down, so you could hide all of them (display:none)
and show only the one u care about here later (further down)takes a bit of setup on each client… make the folder, add the subfolders, turn it on in dev window for that url
one thing, if you use the display: none approach, the apis will still be called, and the module will still create the content, and then the browser will be told not to display it. the module does not know it’s content is hidden
-
-
-
@sdetweil Thanks for the updated alternative.
Unfortunately, it seems like this feature is only available on the desktop. In my case I’m using Android phones and/or tablets for my remote displays. I’ll be interested to see what the guy using the FireTVs and/or AndroidTVs is able to do.
Anyway, I wrote up a feature suggestion that would allow for what I want and posted it in that category.
https://forum.magicmirror.builders/topic/17226/seperate-config-for-web-access
-
@cweinhofer as mentioned over there, open an issue on GitHub for the project owners to examine
many old I* devices don’t support the es6 JavaScript operators that most of us are using and going to. so the code won’t run. don’t know about android, but would expect the same problem
I know there was a PR a couple years ago to restore the old operator based code, but it was not selected