Read the statement by Michael Teeuw here.
Magic mirror serving multiple clients
-
@zack949 I think you’ll need to run three separate instances, but should be straightforward. You’ll want three installs (e.g.
~/MagicMirror1
,~/MagicMirror2
, etc.). Suggest you install/build MM, then just copy the directory twice with all the dependencies. You’ll need to set each up on its own port to avoid collisions.Interesting idea to permit multiple server instances from a single install, but I think it would become confusing for many. The single server/client does satisfy the vast majority of use cases atm.
-
I will look into that, is there a place where I can find a list of available commands for server controls. For example how do I stop the server once I start it? I do not have much in the way of experience for this and would appreciate any help you can give me.
-
@zack949, could you report back after you got it solved? I think this is an interesting use case, which might be relevant for more people.
If you start your mirror with
pm2
as suggested in documentation, then you can use commands likepm2 stop mm
,pm2 restart mm
,pm2 start mm
to control your mirror.I would make three different start scripts, e.g.
mm1.sh
,mm2.sh
, andmm3.sh
, where each one starts one specific instance. This is in line with @ninjabreadman’s suggestion to have three install directories. -
What @ninjabreadman suggested worked wonderfully and could act as a long term solution. A gui could make the whole process of managing instances easier.
-
@zack949 I suggest you register
mm1.sh
,mm2.sh
andmm3.sh
withpm2
(per manual install guide). I would then also create amm-start.sh
that runspm2 start mm1 && pm2 start mm2 && pm2 start mm3
and likewise forstop
. You might even create anmm.sh
that just sends the following command (e.g.mm.sh start
) for all three MM instances managed bypm2
, but that will require some bash scripting. -
Is there currently any development to make a GUI for better visualizing config.js changes?
-
@zack949 Not of which I’m aware. Most dev effort is spent on the display/features end. It would also have to track the config options for dozens of regularly changing modules, which presents its own challenges.
I recommend using a syntax-highlighting code editor, like (the free) Atom. It will help with closing brackets/braces, and using the proper quotes. You can also run “Atom Beautify” in “Packages” regularly to keep formatting for legibility.
-
@strawberry 3.141 didn’t you help someone accomplish this? I would LOVE to do this so my big mirror and bathroom mirror are both running the same thing… ;)
-
@cowboysdude take a look at https://github.com/fewieden/MMM-syslog-slave thats the only thing were I connected multiple instances
-
This sound cool. But your need depends on how you want to interact with multiple instaces.
- One master MM with multiple non-interactive slaves:
- Just open browser on new device and point to master MM IP, and expand to full-screen
- One master MM with multiple, one-at-the-time interactive slaves:
- Need some hardware hacking: try to find a way to connect several PIR, microphone to multiple monitors, could be over cable, wifi or bluetooth. (Seem hard and ugly to implement)
- Implement some kind of HDMI switching mechanism
- One master MM with multiple, all-independent interactive slaves:
- Do what’s described above with using
mm1,mm2,mm3,...
. This surely would eventually overload a RPi, as you add different and concurrent modules.
- Do what’s described above with using
- One master MM with multiple non-interactive slaves: