A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Subcategories

  • Any suggestions or wishes for the forum?

    95 Topics
    656 Posts
    KristjanESPERANTOK

    @toxeek Just to let you know, I am not part of the core MagicMirror team and my answer is based on my personal interpretation of the situation.

    I wish you every success! 🚀 I would find it interesting if you could tell us about your project later.

  • Pool chlorine value in mirror

    Unsolved
    2
    0 Votes
    2 Posts
    377 Views
    D

    @differentjacob said in Pool chlorine value in mirror:

    I’m having a unit called blueconnect. A little floating things in the pool, this is connected to wifi or bluetooth and saving chlorine, temp values in the cloud. Is there someone here having same solution to the pool or spa. I’m not a developer but realy cool to see in the mirror every morning. Maybe anyone here can develop 😃

  • Premiership themed magic mirror/uk football leauges.

    Moved
    2
    0 Votes
    2 Posts
    454 Views
    M

    @andybriggs03 Hi Andy,
    I’ve kinda done this using the calendar to get all premiership fixtures and also MMM-soccer to show the Premier League table.

    Next job is to get the club emblem in the background.

    BTW, I’m a Leeds Fan. MOT
    0a4e1231-3624-4dfa-8e1e-8635faac3717-image.png

  • Spotify WITH MUSIC for free user? kinda

    1
    0 Votes
    1 Posts
    262 Views
    A

    So basically if u install chromium media edition on your rpi and use Spotify web as the music player and run magic mirror on top of it u might be able to use magic mirror with any Spotify control module to contol playback on the web play.

    Please someone develop a module for this

    Or just guide me with the first step in creating a module for Spotify

  • Simplifying the live on the bash command line

    7
    2 Votes
    7 Posts
    718 Views
    F

    Long time Linux user, still have problems remembering rarely used commands. Thanks N-O-D-E guy! Recommend anyone using this and hoping to master BASH to still create their own scripts (got to do it to learn it!). Create a dir, eg, “my_scripts” and add it to your path. jiofilocalhtml https://forpc.onl/snaptube-for-pc

  • Intro to all of u

    1
    0 Votes
    1 Posts
    178 Views
    J

    Re: Introduce yourself!
    Its Jesica Taylor. I am 25 years old. Doing job in a private company named as wapexp. I have 3 childs, one daughter and two sons.

  • MMM-Assistant2Display

    10
    0 Votes
    10 Posts
    930 Views
    T

    @Bugsounet Merci beaucoup pour ta réponse et, de manière générale pour l’ensemble des ressources mises à disposition.

  • Further personalization with Face-Reco

    16
    0 Votes
    16 Posts
    2k Views
    M

    It appears to be working now (snuck to the Pi on my lunch break). I left one compliment in the afternoon class of the defaults list in compliments.js and put one into the instance tagged with my name as the class in config.js using the proper formatting. I now see where I went wrong so thanks for the help. I’ll try making multiple instances in config.js with different users tagged in the classes.

  • Someone to help me through the process

    3
    0 Votes
    3 Posts
    312 Views
    M

    Pedro - trust me on this. There is so much satisfaction that comes from the major frustrations you’re sure to encounter in the process of “figuring it out” on your own. I’ve just now signed up to the forum to first thank everyone that helped me through their threads that Google found for me when I was stuck and now, with TWO mirrors running to dig deeper beyond the “already made” stuff. You can do it and you will, like me, learn a whole pile of new stuff that you’ll carry on to many other projects.

    I’ve learned about terminal commands in Python, installing stuff through git commands, searching through error code and more. My first mirror was a basic setup which I then searched and experimented with to get localization working for time setting, news relevance, weather etc. I then figured out how to get our own families’ Google calendar events showing and so on. Mirror #2 started out from there and had facial recognition added to it for four members of our household.

    There were MANY hiccups along the way but I did it. You can too! Follow the guides that are out there and celebrate each success you have!

    I started this with minimal previous knowledge other than how to flash an SD card.

  • Smart Mirror - how to find the right balance between monitor and mirror

    1
    0 Votes
    1 Posts
    237 Views
    L

    Hey, there are multiple mirror sizes available and I am unsure about whether the size of the monitor and mirror will be “in sync”. I am thinking of buying a 12" x 18" mirror. Advice for what size monitor to get? (Going for a budget mirror)

    shorturl.at/ntxIT -> It’s an amazon Link trust me on it

    Also, anyone has any examples of what sizes they have used for both the mirror and the monitor?

  • axios request returns no data, while http request does

    7
    0 Votes
    7 Posts
    2k Views
    lavolp3L

    @sharklaser said in axios request returns no data, while http request does:

    :
    axios.defaults.headers.common[‘User-Agent’] = ‘PostmanRuntime/7.26.2’;

    That was the solution! Thanks!!

  • how to make just 1 module bigger?

    6
    0 Votes
    6 Posts
    1k Views
    A

    This is amazing, thank you so much!

  • Rasbian in Portrait mode: How to make new windows open on top position

    1
    0 Votes
    1 Posts
    139 Views
    M

    Happy New Year everyone! May 2021 be the year that will bring everything you need in life.

    This is driving me insane. I’m running my MM in portrait mode. How do I tell raspbian to open any new window op top of the display instead of position middle?

    So when I open terminal the window opens in the middle of the screen and I have to drag it to top to work pleasantly. Same with the file explorer and all the other windows I open new.

    Sorry for being a massive n00b. I really can’t find a way to google myself out of this.
    Help?

  • No GitHub Info on Module Page

    9
    0 Votes
    9 Posts
    670 Views
    M

    Good info. Thanks again.

  • Combining keybindings and telegram bot?

    1
    0 Votes
    1 Posts
    136 Views
    C

    I have both MMM-KeyBindings and MMM-TelegramBot installed and working well. Is there a way to have telegram simulate key presses for MMM-KeyBindings to respond to?

    My scenario is this : I have MMM-Carousel set up to cycle through two pages but sometimes I want to manually advance the page. The only way MMM-KeyBindings works is when I’m connected to my Rpi using VNC. So that’s not very practical. If I can trigger a virtual keypress via MMM-TelegramBot, that would be awesome.

    Has anyone tried this?

  • Change the modul position remote with api or something similar!

    7
    0 Votes
    7 Posts
    618 Views
    P

    Thank you.:folded_hands:
    Then I have to use the remote-control module in a Javascript code to be able to access MMM-Dynamic-Modules. Maybe I can find a code example somewhere on the internet that makes it work too.

  • Help again...

    15
    0 Votes
    15 Posts
    1k Views
    S

    @smart_user the way you are supposed to do it is in config.js

    { module: “compliments”, position: “lower_third” config: { compliments: { anytime: [“Make today worth it!”], morning: [“Good morning!”, “Have a wonderful day”, “It’s your day today!”], afternoon: [“You can do this”, “Take a small nap”, “Enjoy your meal”], evening: [“Exercise time!”, “NO PAIN NO GAIN!”, “Well done for the day!”], “…-01-01”: [“HAPPY NEW YEAR!”], “…-12-25”: [“MERRY CHRISTMAS!”] } } }, { module: “compliments”, header: ‘’, position: “middle”, config:{ compliments: { anytime: [“Make today worth it!”], morning: [“Good morning!”, “Have a wonderful day”, “It’s your day today!”], afternoon: [“You can do this”, “Take a small nap”, “Enjoy your meal”], evening: [“Exercise time!”, “NO PAIN NO GAIN!”, “Well done for the day!”], “…-01-01”: [“HAPPY NEW YEAR!”], “…-12-25”: [“MERRY CHRISTMAS!”] } } }

    and u leave the original code untouched. this way we can change the code, without impacting your configuration

  • Need help - New programmer

    23
    0 Votes
    23 Posts
    2k Views
    S

    @innovation this sample module shows a whole host of things.

    default message that CAN be overridden by one placed in the module config in config.js defaults: { message: "STAY HYDRATED! DRINK A GLASS OF WATER" }, config:{ message: "some message to replace the default" } use of the notification that all modules are loaded and started, to send an event to the node_helper notificationReceived(), ALL_MODULES_STARTED sendSocketNotification the node helper received the config info and does some processing (by using a timer in this example), receiveSocketNotification then sends data back to the module sendSocketNotification() this 'data' is the configured message, the module sends all the config down to the helper, the helper sends back JUST the message to display from the config info it just shows how the parts fit together and communicate with each other

    4a. the module receives the notice from the node_helper, and then setup up to display that data

    socketNotificationReceived()

    4b. the module tells MM that there is new data to display

    updateDom(1000) the module formats the data for display getDom()

    now, the current implementation ONLY sends and displays the message once…
    send down to node_helper, timer, send to module, display

    u want two things

    make message go away display some other message

    but u need something to start the work… after all of the above, there is nothing to do… getDom() ALWAYS displays whatever is in the message variable.

    SO, we could start ANOTHER timer, and when it expires, cause getDom() to display something different (from the same old place)

    the timerRoutine() will do the second part , change the message variable, and tell MM it changed, which calls getDom()

    but some NEW code has to cause the timerRoutine to run…

    for this example, when getDom() runs, lets add some code to run the timerRoutine later

    setTimeout(this.timerRoutine, ???) where ??? is some number of milliseconds
    15000 is 15 seconds (15 seconds times 1000 milliseconds per second)

    so , our updated getDom() looks like this

    getDom (){ var wrapper=createElement("div") wrapper.innerText=this.somestring // use the value of the somestring variable to display setTimeout(this.timerRoutine, 15000) // start a timer, when it expires call our routine return wrapper; }

    so lets look at our timerRoutine
    every time it runs, it will update the counter variable and then create a new message string

    timerRoutine: function(){ this.somestring="some other string "+ this.counter++; this.updateDom(?????) // time_to_delay_in_ms, 0 = immediately }

    updateDom takes a number as a parameter, number of milliseconds…
    how FAST do you want the new info to display??? immediately? or after some time?
    if immediately, then the number is 0

    so, the updated routine looks like this

    timerRoutine: function(){ this.somestring="some other string "+ this.counter++; this.updateDom(0) // time_to_delay_in_ms, 0 = immediately }

    (ps u need to add the counter variable at the top near your defaults, not IN defaults, so that this code will work)

    so, now we have the whole loop, start, send to node_helper, node_helper waits, sends message back, module updates variable, and tells mm we have content, mm calls getDom, which creates the html content to display, starts ANOTHER (one time) timer, and gives the current content to MM.

    and then that timer expires and calls our routine, which changes the variable, and tells MM we have new content, mm calls getDom, which creates the html content to display, starts ANOTHER (one time) timer, and gives the current content to MM.

    repeat this last cycle forever, over and over and over.

    so the displayed message will change every 15 seconds

    so, NOW you want the message to go away, before the next message appears…
    well, we have to start some OTHER timer, OR piggy back on the existing timer…

    lets use a second timer and a second timerRoutine (otherwise the time cycle is 15 seconds on, 15 seconds off
    ----> need to add showMessage:true, to the variables at the top

    timerRoutine2: function(){ this.showMessage= !this.showMessage // this will cause the flagShowMessage to toggle between true and false this.updateDom(0) // time_to_delay_in_ms, 0 = immediately }

    and now we need to fix getDom()

    getDom (){ var wrapper=createElement("div") if(this.showMessage){ // if we should show the message wrapper.innerText=this.somestring // use the value of the somestring variable to display setTimeout(this.timerRoutine2, 5000) // start the timer to CLEAR the message in 5 seconds } // we don't need the negative case, cause we created a new empty div, so it will have nothing to display setTimeout(this.timerRoutine, 15000) // start a timer, when it expires call our routine return wrapper; }

    these are just examples, there are lots of ways to do something like this, up to your imagination…

    write it down on a piece of paper, walk thru it in your native language, get the flow… then write code to match

  • Magic Mirror invocation via Flask-ask Alexa Intent

    2
    0 Votes
    2 Posts
    215 Views
    S

    @ashokkn what is your intent doing? How is it starting mm?

    Line 93 in js/electron.js is a call to Log to print a message to the console

  • Module for German "DSB" (electronic bulletin board)?

    1
    0 Votes
    1 Posts
    173 Views
    kaiK

    Hi there,
    does anyone know if there is a module for the German “Digitales Schwarzes Brett” / DSBmobile (electronic bulletin board for schools)? I couldn’t find one within the 3rd party modules. (Maybe there are some other module sources?)
    I’m sorry I do not have any more information about it, our kids just use the DSBmobile app, and I saw that there is an API.

    It would be great if we could display supply teachers and changes of the class schedule on our magic mirror. :-)

    Any hints appreciated. Thanks a lot.
    May the code be with you
    -kai

  • 1 Votes
    1 Posts
    267 Views
    B

    Hey Guys

    I just completed my first MagicMirror with a pi 3b+ I had with the official Pi 7Inch screen. I love this thing. It sits on my desk while I work. This first project was more of a prototype for what I plan to do. My question is this, does anyone know if there is a working Google Nest Thermostat module that uses the new Google Device Access API? My Nest account was converted last year and sadly I cannot use the current Nest modules out their until they have the api updated to the new one. I really want to integrate this with my Nest but can’t yet.

    Thanks