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?

    102 Topics
    704 Posts
    S
    @mumblebaj so much fun! everybody is sliding into paywalls.
  • No GitHub Info on Module Page

    9
    0 Votes
    9 Posts
    1k Views
    M
    Good info. Thanks again.
  • Combining keybindings and telegram bot?

    1
    0 Votes
    1 Posts
    204 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
    1k 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
    2k 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
    4k 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
    267 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
    257 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
    325 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
  • Heads up. New Raspberry PI OS changes sound approach

    1
    0 Votes
    1 Posts
    156 Views
    S
    See https://www.raspberrypi.org/blog/new-raspberry-pi-os-release-december-2020/
  • Update auf 2.13.0

    65
    0 Votes
    65 Posts
    22k Views
    A
    Hi guys, so much useful information. I have a brain explosion, and I did not expect to find all this here. I was already in despair, I thought that I would order an assignment on the Internet and use the services of the marketing assignment help service. But now I understand that I can do everything myself. Guys, thank you for creating this forum and share such useful information. How glad I am that I decided to drop by for a few minutes and wasted my time for that. Many thanks to everyone.
  • mirror photobooth

    1
    1
    0 Votes
    1 Posts
    263 Views
    B
    Hi everyone hope 2020 is being kinder to you than many. I am late to the mirror booth photobooth game but wish to build a mirror booth or two. My market doesn’t have tempered two way glass so there is only acrylic. I have a 40 inch tv in stock and a Shuttle PC which has decent specs. I may adapt the back so it is not so roadcase looking just as main market is weddings; and I have seen some providers for the software (open to any suggestions or good experiences) My questions are: Will two way mirror acrylic work ok to show up the PC screen imagery and withstand the events industry scene? with a 40 inch screen would a65 inch touchframe be too big …is 55inch better to get gesture control I believe a webcam is needed. I want to fit a DLSR for better quality print out pics in general but on events that insist on gesture control i can use webcam (would the webcam rest on top of how best to integrate both ? I am sure I have a million more questions but anyone who has gone the DIY route and learnt along the way and can help me navigate the pitfalls and do the project would be a huge help [image: 1606910822298-mirror-photobooth-white-frame-google-search.png]
  • write events to Calendar on MM

    6
    0 Votes
    6 Posts
    1k Views
    D
    Thank you, I have already ordered a microphone and speaker and that is the next module I was going to try.
  • npm patch 6.14.8 -> 6.14.9 ?

    3
    1
    0 Votes
    3 Posts
    450 Views
    C
    Tested on one of raspberrys…no change for this moment
  • Secondary Touch Screen Control Panel

    2
    0 Votes
    2 Posts
    473 Views
    A
    @adam5242 hi, i have the same question : can an instance if MM interact with a 2nd one installed on the same pi??
  • Totally off topic :^')

    27
    3
    2 Votes
    27 Posts
    11k Views
    BKeyportB
    @Miafrance I’d likely go through gimp or something.
  • History of the Magic Mirror

    5
    0 Votes
    5 Posts
    916 Views
    lavolp3L
    @Johannesx0 He has a blog. Or try messaging him directly here on the forum
  • google assistant location

    11
    0 Votes
    11 Posts
    3k Views
    R
    @Bugsounet I think he always has the time from england
  • Webcam instead of mirror?

    10
    0 Votes
    10 Posts
    4k Views
    A
    @flipfloplife I know this is a few years later but were you able to figure it out?
  • google assistant / carousel

    1
    0 Votes
    1 Posts
    238 Views
    R
    can I also use @Bugsounet’s google assistant with the MMM-Carousel w / Slide Navigation to scroll to the next or previous page if this is possible, someone will explain how this works? thank you in advance
  • 0 Votes
    2 Posts
    231 Views
    S
    @raf well, they have to update their certificate, OR you have to accept that they have an invalid cert… and you MAY not be connecting to the right place there is no other fix… this is what certificates and https is all about I don’t see that error or see any log entry trying to access that domain.