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

    Unsolved
    2
    0 Votes
    2 Posts
    737 Views
    J
    @JonoGee just get … This site can’t be reached 192.168.1.*** refused to connect. Try: Checking the connection Checking the proxy and the firewall ERR_CONNECTION_REFUSED when trying to get token
  • MM ClientOnly + Docker as a server on the same machine

    Unsolved
    2
    0 Votes
    2 Posts
    885 Views
    S
    @Serge npm start, starts the full system, and node clientonly starts the client But u have a server already using docker so, only do node clientonly
  • MMM-MysqlQuery module

    Unsolved
    1
    0 Votes
    1 Posts
    495 Views
    R
    I have the MMM-MysqlQuery module working OK, just a couple of queries: How might you change “Amt” form an integer, to a message saying “Too High” or Too low"? [I am actually measuring temperature and lux levels, but the principle’s the same.] Thank you.
  • CSS: Heading underline, width control.

    Unsolved
    1
    0 Votes
    1 Posts
    487 Views
    R
    (As posted in the CSS area, but no replies there.) I’m looking at the border-bottom in the ‘Lower third’ region. Currently, the line below the heading, when enabled, crosses the entire display. The CSS attributeborder-bottom-width changes not the width, but the height of the line, not what I want. How then, do I get border-bottom in lower-third, to be just the width of what it’s showing, and not the entire width of the display? Thank you.
  • Install vdirsyncer

    Unsolved
    2
    0 Votes
    2 Posts
    700 Views
    B
    Was hoping that someone can help me? *** PUSH ***
  • module: "weatherforecast" : day not display

    Unsolved
    1
    0 Votes
    1 Posts
    406 Views
    D
    Hello, In module: “weatherforecast” the indication of the day is hidden by the icon [image: j4aKuOaAfTkU.jpg] how can I solve this problem? Thanks Pi3 - MM version 2.6.0
  • how to create slide button for my carousel?

    Unsolved
    2
    1
    0 Votes
    2 Posts
    594 Views
    D
    Sir, If you got the solution then please tell me can we do this in blogger?
  • MMM-MotionDetector in parallel to MMM-Remote-Control?

    Unsolved
    2
    0 Votes
    2 Posts
    628 Views
    D
    Okay here is the thing, I missed an hint in the readme of the module, which says it works only on address: "localhost", i had it set to: address: "0.0.0.0", to be able to use MMM-Remote-Control. Does anyone have an idea for me use both in parallel?
  • Mac mini CEC Client not working

    Unsolved
    2
    0 Votes
    2 Posts
    566 Views
    StoffbeuteluweS
    On Raspberry Pi it works perfect but for my Mac mini there is no way to get cec client
  • Flip vertical orientation

    Solved
    7
    0 Votes
    7 Posts
    5k Views
    Mykle1M
    @Madi It was your idea so good work figuring that out on your own. Well done! :thumbsup:
  • MMM-GoogleMapsTraffic ERROR!

    Unsolved
    1
    0 Votes
    1 Posts
    479 Views
    R
    Re: MMM-GoogleMapsTraffic "breaks" mirror? I understand this is a year old post - since I haven’t got an answer for my issue, reaching out to this group. I have below code and my map loads for 2 seconds and errors “ops something went wrong” What am I doing wrong here? Help please! { module: "MMM-GoogleMapsTraffic", position: "bottom_right", config: { key: "I HAVE THIS", lat: 41.8816281, lng: -87.6608605, height: "300px", width: "300px", mapTypeId: "roadmap", styledMapType: "transparent", disableDefaultUI: "true", updateInterval: "60000", backgroundColor: "hsla(0, 0%, 0%, 0)", markers: [ { lat: 41.8816281, lng: -87.6608605, fillColor: "#9966ff" }, ] } },
  • Newsfeed not displaying on MM

    Unsolved
    2
    0 Votes
    2 Posts
    1k Views
    bheplerB
    Dude, I copy & pasted your config.js entry and it came right up. If you’ve modified the newsfeed.js file then you’re going to want to reset it to source. Do you get any errors when you type pm2 log 0? Do you get any errors in the console when you open the developer tools?
  • At my Wits end! Overscan/Underscan. Nothing changes

    Unsolved
    11
    0 Votes
    11 Posts
    6k Views
    evroomE
    @JonoGee Did you ever touch the /boot/config.txtfile ? Or only did the config using $ sudo raspi-config or via the GUI ? It can be you selected Overscan there. Can you also show the output of this command ? $ cat /boot/config.txt | grep -v '^#' | egrep 'overscan|framebuffer|hdmi|dtoverlay'
  • Issues with config file

    Unsolved
    7
    0 Votes
    7 Posts
    2k Views
    S
    @smalluk opps. sorry there is no space between those two npm config:check
  • RSS Feed wrapDescription // multiple lines

    Unsolved
    2
    0 Votes
    2 Posts
    703 Views
    S
    nobody with an idea?
  • Problem with MMM-NowPlayingOnSpotify in spanish

    Unsolved
    1
    0 Votes
    1 Posts
    380 Views
    M
    Hi there! I´m trying to play music in soptify in spanish, I’ve done everything appears in videos and the step guide on github twice, and I can see the spotify logo on the screen. I have a familiar premium account Alexa is on spanish Alexa Says : No puedo reproducir musica de spotify en este dispositivo (I can´t play music of spotify on this device) It only works with a premium account, different to familiar premium account? Greetings from Chile!!! Thanks in advance!!!
  • Problem with using mac addresses for MMM-NetworkScanner

    Solved
    4
    1
    0 Votes
    4 Posts
    961 Views
    S
    @jav26122 cool … we all do that. I spent an hour or so this last week making changes to my mm setup in a separate copy. I made some changes, restarted. No effect etc. Etc… Til I realized I was editing one and running another . Never works that way!!
  • Unable to create two clocks that looks alike

    Unsolved
    1
    2
    0 Votes
    1 Posts
    670 Views
    S
    Hi, I’m using the MMM-iClock module to display clock. Initially this was working fine, but here as per my requirement, I am trying to display 2 clocks side by side in top_right section. Here I’ve 2 questions. Here the functionality is working fine, but the UI(of the 2nd clock) seems messed up(the number bars doesn’t show up). As soon as the mirror starts, the clocks goes to the right corner and then automatically comes to place. Here is my code. var iClock; Module.register("MMM-iClock", { defaults: { seconds: true, size: "350px", color: "#FFFFFF", digital: 2, // 0 (no display), 1 (permanent display) or 2 (show for 5 seconds on every miniute) analogue: true, // false (no display), true (permanent display) glow: true, // false (no display), true (permanent display) }, getStyles: function () { return ["MMM-iClock.css"]; }, days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], start: function () { iClock = this; Log.info("Starting module: " + iClock.name); var style = document.querySelector('html'); style.style.setProperty('--fore', iClock.config.color); style.style.setProperty('--size', iClock.config.size); if (!iClock.config.glow) style.style.setProperty('--glow', "none"); setTimeout(iClock.updateClock, 1000) }, getDom: function () { var wrapper = document.createElement("div"); wrapper.className = "iClock"; if (iClock.config.analogue === true) { var x = document.createElement("div"); x.className = "x"; var y = document.createElement("div"); y.className = "y"; var z = document.createElement("div"); z.className = "z"; overlay = document.createElement("div"); overlay.className = "overlay"; var hour = document.createElement("div"); hour.className = "hour"; hour.id = "sHour"; overlay.appendChild(hour); var minute = document.createElement("div"); minute.className = "minute"; minute.id = "sMinute"; overlay.appendChild(minute); if (iClock.config.seconds === true) { var second = document.createElement("div"); second.className = "second"; second.id = "sSecond"; overlay.appendChild(second); } //SFO sfoTimeoverlay = document.createElement("div"); sfoTimeoverlay.className = "sfoTimeoverlay"; var sfoTimehour = document.createElement("div"); sfoTimehour.className = "hour"; sfoTimehour.id = "sfoTimesHour"; sfoTimeoverlay.appendChild(sfoTimehour); var sfoTimeminute = document.createElement("div"); sfoTimeminute.className = "minute"; sfoTimeminute.id = "sfoTimesMinute"; sfoTimeoverlay.appendChild(sfoTimeminute); if (iClock.config.seconds === true) { var sfoTimesecond = document.createElement("div"); sfoTimesecond.className = "second"; sfoTimesecond.id = "sfoTimesSecond"; sfoTimeoverlay.appendChild(sfoTimesecond); } z.appendChild(overlay); z.appendChild(sfoTimeoverlay); y.appendChild(z); x.appendChild(y); wrapper.append(x); } if (iClock.config.digital !== 0) { var time = document.createElement("div"); time.className = "time"; time.id = "sTime"; if (iClock.config.digital === 2) time.style.opacity = 0; if (iClock.config.analogue === true) overlay.appendChild(time); else wrapper.appendChild(time); } if (iClock.config.digital !== 0) { console.log('##########' + iClock.config.digital); var sfoTimetime = document.createElement("div"); sfoTimetime.className = "time"; sfoTimetime.id = "sfoTimesTime"; if (iClock.config.digital === 2) sfoTimetime.style.opacity = 0; if (iClock.config.analogue === true) sfoTimeoverlay.appendChild(sfoTimetime); else wrapper.appendChild(sfoTimetime); } return wrapper; }, updateClock: function () { var wait = 60; now = new Date(); console.log(now); wait -= now.getSeconds(); var sec = now.getSeconds() + (60 * now.getMinutes()) + (60 * 60 * now.getHours()); if (iClock.config.seconds === true) { wait = 1; sec += 1 } s = (360 / 60) * sec; m = s / 60; h = m / 12 sHour = hour = now.getHours(); sMinute = minute = now.getMinutes(); if (sHour < 10) sHour = "0" + sHour; if (sMinute < 10) sMinute = "0" + sMinute; var sDate = document.createElement("div"); sDate.className = "date"; sDate.innerHTML = iClock.days[now.getDay()] + " " + now.getDate() + " " + iClock.months[now.getMonth()]; document.getElementById('sTime').innerHTML = sHour + ":" + sMinute; document.getElementById('sTime').appendChild(sDate); if (iClock.config.digital == 2) { if ((iClock.config.seconds === true && (sec + 2) % 60 == 0) || iClock.config.seconds === false) document.getElementById('sTime').style.opacity = 1; setTimeout(function () { document.getElementById('sTime').style.opacity = 0; }, 5000); } if (iClock.config.analogue === true) { if (iClock.config.seconds === true) document.getElementById('sSecond').style.transform = "translate(-50%, -50%) rotate(" + s + "deg)"; document.getElementById('sMinute').style.transform = "translate(-50%, -50%) rotate(" + m + "deg)"; document.getElementById('sHour').style.transform = "translate(-50%, -50%) rotate(" + h + "deg)"; } var estTime = new Date(); estTime.setHours(now.getHours() - 12); estTime.setMinutes(now.getMinutes() - 30); console.log(estTime); sfoTime = estTime; wait = 60; wait -= sfoTime.getSeconds(); var sfoTimesec = sfoTime.getSeconds() + (60 * sfoTime.getMinutes()) + (60 * 60 * sfoTime.getHours()); if (iClock.config.seconds === true) { wait = 1; sfoTimesec += 1 } sfoTimes = (360 / 60) * sfoTimesec; sfoTimem = sfoTimes / 60; sfoTimeh = sfoTimem / 12 sfoTimesHour = sfoTimehour = sfoTime.getHours(); sfoTimesMinute = sfoTimeminute = sfoTime.getMinutes(); if (sfoTimesHour < 10) sfoTimesHour = "0" + sfoTimesHour; if (sfoTimesMinute < 10) sfoTimesMinute = "0" + sfoTimesMinute; var sfoTimesDate = document.createElement("div"); sfoTimesDate.className = "date"; sfoTimesDate.innerHTML = iClock.days[sfoTime.getDay()] + " " + sfoTime.getDate() + " " + iClock.months[sfoTime.getMonth()]; console.log(document.getElementById('sfoTimesTime')); document.getElementById('sfoTimesTime').innerHTML = sfoTimesHour + ":" + sfoTimesMinute; document.getElementById('sfoTimesTime').appendChild(sfoTimesDate); if (iClock.config.digital == 2) { if ((iClock.config.seconds === true && (sfoTimesec + 2) % 60 == 0) || iClock.config.seconds === false) document.getElementById('sfoTimesTime').style.opacity = 1; setTimeout(function () { document.getElementById('sfoTimesTime').style.opacity = 0; }, 5000); } if (iClock.config.analogue === true) { if (iClock.config.seconds === true) document.getElementById('sfoTimesSecond').style.transform = "translate(-50%, -50%) rotate(" + sfoTimes + "deg)"; document.getElementById('sfoTimesMinute').style.transform = "translate(-50%, -50%) rotate(" + sfoTimem + "deg)"; document.getElementById('sfoTimesHour').style.transform = "translate(-50%, -50%) rotate(" + sfoTimeh + "deg)"; } setTimeout(iClock.updateClock, wait * 1000); } }); and here is the CSS. :root { --back: #000; --fore: #00D6FF; --size: 350px; --glow: 0 0 8px var(--fore); } .iClock { position: relative; display: block; width: var(--size); height: var(--size); border-radius: 350px; } .iClock .x:after, .iClock .x:before, .iClock .x .y:after, .iClock .x .y:before, .iClock .x .y .z:after, .iClock .x .y .z:before { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 2px; height: 100%; background: var(--fore); } .iClock:after { transform: translate(-50%, -50%) rotate(90deg); z-index: 1; } .iClock .x:before { transform: translate(-50%, -50%) rotate(30deg); } .iClock .x:after { transform: translate(-50%, -50%) rotate(60deg); } .iClock .x .y:before { transform: translate(-50%, -50%) rotate(120deg); } .iClock .x .y:after { transform: translate(-50%, -50%) rotate(150deg); } .iClock .x .y .z:before { transform: translate(-50%, -50%) rotate(0deg); } .iClock .x .y .z:after { transform: translate(-50%, -50%) rotate(90deg); } .overlay { float: left; } .sfoTimeoverlay { float: right; margin-left: 120% } .iClock .x .y .overlay, .iClock .x .y .sfoTimeoverlay { position: absolute; width: 91%; height: 91%; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(--back); border-radius: 300px; z-index: 2; } .iClock .x .y .overlay .hour, .iClock .x .y .overlay .minute, .iClock .x .y .overlay .second, .iClock .x .y .sfoTimeoverlay .hour, .iClock .x .y .sfoTimeoverlay .minute, .iClock .x .y .sfoTimeoverlay .second { position: absolute; top: 50%; left: 50%; width: calc(100% + 40px); height: calc(100% + 40px); border-radius: 350px; transform: translate(-50%, -50%); border: 2px solid var(--fore); box-shadow: var(--glow); } .iClock .x .y .overlay .hour:after, .iClock .x .y .overlay .minute:after, .iClock .x .y .overlay .second:after, .iClock .x .y .sfoTimeoverlay .hour:after, .iClock .x .y .sfoTimeoverlay .minute:after, .iClock .x .y .sfoTimeoverlay .second:after { content: ""; position: absolute; width: 10px; height: 15px; top: -8px; left: 50%; transform: translate(-50%); background: var(--back); } .iClock .x .y .overlay .minute, .iClock .x .y .sfoTimeoverlay .minute { width: calc(100% - 18px); height: calc(100% - 18px); } .iClock .x .y .overlay .second, .iClock .x .y .sfoTimeoverlay .second { width: calc(100% - 50px); height: calc(100% - 50px); } .iClock .time { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; font-family: 'Titillium Web', sans-serif; text-align: center; font-size: 15px; white-space: nowrap; font-weight: 500; line-height: 30px; text-shadow: var(--glow); color: var(--fore); } .iClock .x .y .overlay .hour, .iClock .x .y .overlay .minute, .iClock .x .y .overlay .second, .iClock .time, .iClock .x .y .sfoTimeoverlay .hour, .iClock .x .y .sfoTimeoverlay .minute, .iClock .x .y .sfoTimeoverlay .second, .iClock .time { transition: 1s cubic-bezier(.4, 0, .2, 1); -o-transition: 1s cubic-bezier(.4, 0, .2, 1); -ms-transition: 1s cubic-bezier(.4, 0, .2, 1); -moz-transition: 1s cubic-bezier(.4, 0, .2, 1); -webkit-transition: 1s cubic-bezier(.4, 0, .2, 1); } .iClock .time .date { font-size: 10px; line-height: 25px; text-align: center; } I didn’t do much of coding here, I copy pasted the existing clock and did modifications on top of it. Here is how it looks while I start my mirror. [image: 1558974210801-screen-shot-2019-05-27-at-9.52.37-pm.png] And here it is after 2-3 seconds. [image: 1558974237730-screen-shot-2019-05-27-at-9.52.43-pm.png] please let me know on where am I going wrong and how can I fix this. Thanks, Sunny
  • MMM-google-route and coordinates

    Solved
    7
    0 Votes
    7 Posts
    2k Views
    S
    @Zippyczech cool. Thanks for providing feedback.
  • MMM-Remote COntrol

    Unsolved
    2
    0 Votes
    2 Posts
    2k Views
    thedoorsfanaticT
    Get rid of "pages": {"Video": "bottom_left"} and try that: { module: "MMM-Remote-Control", position: "bottom_left", config: { customMenu: "custom_menu.example.json", // Optional, See "Custom Menu Items" below } },