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

    5
    0 Votes
    5 Posts
    989 Views
    R
    @bjoern thank you I adapted the custom.css like this and it suits me : .MMM-Lunartic img.photo { /* display: none; uncomment if you don't want an image */ max-width: 100%; margin-left: 250px; /* Precisely align moon picture with these */ margin-right: 0px; margin-top: 0px; /* -41px for current. -21px for animation or static. */ margin-bottom: -95px; /* -51px for current. -21px for animation or static. */ } now this is the line of text that I would like on one line. I do not see in the MMM-Lunartic.css which part this concerns, can you help me ? (see the photo below) the weatherforecast is MMM-WeatherOrNot and the Map is MMM-TomTomTraffic. [image: 1602936279637-2020-10-17-135442_1080x1920_scrot.png]
  • My mirror, help wanted!

    4
    0 Votes
    4 Posts
    721 Views
    S
    @lindberg video live feed is also available… see the 3rd party list https://github.com/MichMich/MagicMirror/wiki/3rd-party-modules
  • [Electron] : black screen

    28
    0 Votes
    28 Posts
    7k Views
    R
    @sdetweil it’s work, T.H.A.N.K Y.O.U !!!
  • MMM-MarineWeather : low and high tide

    1
    0 Votes
    1 Posts
    344 Views
    R
    I have just installed the MMM-Marine Weather module which I find really good but I think that an important piece of information is missing: the high and low tide times. This module uses The StormGlass API key and on the StormGlass website I think I can see here (in the extremes-point-request part): https://docs.stormglass.io/#/tide?id=extremes-point-request that we can have the schedules of high tides and low tides. Being a total noob and not knowing how to program is it possible for someone to add this option to this module which would be PERFECT ?
  • tide module for France

    10
    0 Votes
    10 Posts
    2k Views
    C
    @RIKKO14 put off the first line
  • MM-concert-calendar

    1
    0 Votes
    1 Posts
    251 Views
    R
    Hello, I am trying to install the MM-concert-calendar module. after runing query: https://api.songkick.com/api/3.0/search/locations.json?query=YOUR_CITY_HERE&apikey=YOUR_SONGKICK_API i have this: {"resultsPage": {"status": "ok", "results": {"location": [{"city": {"lat": 49.1833, "lng": - 0.35, "country": {"displayName ":" France "}," displayName ":" Caen "}," metroArea ": {" lat ": 49.1833," lng ": - 0.35," country ": {" displayName ":" France "}," uri ":" http://www.songkick.com/metro_areas/28855-france-caen? utm_source=59898&utm_medium=partner "," displayName ":" Caen "," id ": 28855}}]}," perPage ": 50, "page": 1, "totalEntries": 1}} i open open concertcalendar.js but i don’t find the property named in the concertcalendar.js : /* Magic Mirror * Module: ConcertCalendar * * By Marc Pratllusà https://github.com/muilpp * based on a Script from Benjamin Angst http://www.beny.ch * MIT Licensed. */ Module.register("concertcalendar",{ // Define module defaults defaults: { maximumArtist: 150, // Number of bands to check if they are on tour concertsPerPage: 8, updateInterval: 60 * 60 * 24 * 1000, // Once a day. paginationInterval: 20 * 1000, // Every twenty seconds. animationSpeed: 2000, fade: true, fadePoint: 0.25, // Start on 1/4th of the list. initialLoadDelay: 0, // start delay seconds. apiBase: 'http://localhost:8282/concerts', area: "28714", //your songkick area here (Barcelona, Spain by default) user: "",. //your lastfm username here titleReplace: { "Upcoming Concerts Calendar ": "" }, }, // Define required scripts. getStyles: function() { return ["concertcalendar.css", "font-awesome.css"]; }, // Define required scripts. getScripts: function() { return ["moment.js"]; }, // Define start sequence. start: function() { Log.info("Starting module: " + this.name); // Set locale. moment.locale(config.language); this.concerts = []; this.visibleConcerts = []; this.loaded = false; this.paginationTimer = null; this.paginationIndex = 0; this.scheduleUpdate(this.config.initialLoadDelay); this.paginationUpdate(); this.updateTimer = null; }, // Override dom generator. getDom: function() { var wrapper = document.createElement("div"); var table = document.createElement("table"); table.className = "small"; for (var t in this.visibleConcerts) { var concert = this.visibleConcerts[t]; var row = document.createElement("tr"); table.appendChild(row); var concertArtistCell = document.createElement("td"); concertArtistCell.className = "from"; concertArtistCell.innerHTML = concert.artist; row.appendChild(concertArtistCell); var concertCityCell = document.createElement("td"); concertCityCell.innerHTML = " - " + concert.city.trim()+", "; concertCityCell.className = "align-right trainto"; row.appendChild(concertCityCell); var concertDate = document.createElement("td"); concertDate.innerHTML = concert.concertDate; concertDate.className = "align-right trainto"; row.appendChild(concertDate); } return table; }, /* updateTimetable() * Calls processConcerts on succesfull response. */ updateTimetable: function() { var url = this.config.apiBase + this.getParams(); var self = this; var retry = true; var concertRequest = new XMLHttpRequest(); concertRequest.open("GET", url, true); concertRequest.onreadystatechange = function() { if (this.readyState === 4) { if (this.status === 200) { self.processConcerts(JSON.parse(this.response)); } else if (this.status === 401) { self.config.id = ""; self.updateDom(self.config.animationSpeed); Log.error(self.name + ": Incorrect, 401 reponse..."); retry = false; } else { Log.error(self.name + ": Could not load concerts."); } if (retry) { self.scheduleUpdate((self.loaded) ? -1 : self.config.retryDelay); } } }; concertRequest.send(); }, /* getParams(compliments) * Generates an url with api parameters based on the config. * * return String - URL params. */ getParams: function() { var params = "/"; params += this.config.area; params += "/" + this.config.user; params += "?limit=" + this.config.maximumArtist; return params; }, /* processConcerts(data) * Uses the received data to set the various values. * * argument data object - Weather information received form openweather.org. */ processConcerts: function(data) { this.concerts = []; data.forEach((concert) => { var city = concert.City.split(","); if (city.length > 0) { cityToAdd = city[0]; if (city[0].length > 9) cityToAdd = city[0].substring(0,9)+".."; artistToAdd = concert.Artist; if (artistToAdd.length > 10) artistToAdd = artistToAdd.substring(0,10)+".."; var date = new Date(concert.Date); this.concerts.push({ artist: artistToAdd.trim(), city: cityToAdd.trim(), concertDate: date.getDate()+"/"+(date.getMonth()+1) }); } }); this.loaded = true; concertsToShow = this.concerts.slice(0,this.config.concertsPerPage); this.visibleConcerts = this.visibleConcerts.concat(concertsToShow); this.updateDom(this.config.animationSpeed); }, paginate: function() { this.paginationIndex = this.paginationIndex + this.config.concertsPerPage; if (this.concerts.length > this.paginationIndex) { this.visibleConcerts = this.concerts.slice(this.paginationIndex, this.paginationIndex+this.config.concertsPerPage); } else { this.visibleConcerts = this.concerts.slice(0,this.config.concertsPerPage); this.paginationIndex = 0; } this.updateDom(this.config.animationSpeed); }, /* scheduleUpdate() * Schedule next update. * * argument delay number - Milliseconds before next update. If empty, this.config.updateInterval is used. */ scheduleUpdate: function(delay) { var nextLoad = this.config.updateInterval; if (typeof delay !== "undefined" && delay >= 0) { nextLoad = delay; } var self = this; clearTimeout(this.updateTimer); this.updateTimer = setTimeout(function() { self.updateTimetable(); }, nextLoad); }, paginationUpdate: function() { var self = this; setInterval(function() { self.paginate(); }, this.config.paginationInterval); }, }); and add my username in the property right below it. If not, is there a simpler module to have concerts close to home in France? I tried with MMM-Events but my city, Caen in France (city of more than 100,000 inhabitants), is too small for the eventful API: on the eventfull website concerts are displayed but with the API concerts are not are not found, by contacting eventful I understood that I would have to buy an API which I do not want and moreover Eventful forgets a lot of concerts for my city. Thank you for your help.
  • MMM-FUEL, api key for France

    3
    0 Votes
    3 Posts
    526 Views
    R
    yes but in the README.md It’s wrote the name of the provider “tankerkoenig”, I think it’s possible to change the config option provider , no ?
  • Cant create Google API Token

    7
    0 Votes
    7 Posts
    2k Views
    C
    I Think there Was a Problem with Google. Today i try it again and it worked. 👍🏼
  • MMM-GoogleCast ne fonctionne plus

    Moved
    2
    0 Votes
    2 Posts
    447 Views
    lavolp3L
    @did said in MMM-GoogleCast ne fonctionne plus: ps: this forum is very cool. Bravo and it even magically edits your posts :-)
  • Comment désactiver le message "low voltage"

    6
    0 Votes
    6 Posts
    3k Views
    D
    Bonjour J’ai désactivé le paquet “battery monitor plugin for lxpanel” et je n’ai plus l’info low voltage d’affiché . Merci Lavolp3 et les autres pour votre aide precieuse . Google Traduction : Hello I disabled the “battery monitor plugin for lxpanel” package and I no longer have the low voltage info displayed. Thank you Lavolp3 and the others for your precious help.
  • 0 Votes
    7 Posts
    3k Views
    H
    Some additional Information: In calendarfetcher.js and nodehelper.js is the following line: const Log = require("../../../js/logger.js"); If you copy the “calendar” folder down to “modules” this reference will be broken. So you have to change to: const Log = require("../../js/logger.js");
  • Module shown few minute after hiding it

    5
    0 Votes
    5 Posts
    1k Views
    H
    Hey guys, got a similar Probem with the Weatherforecast Module working with Pages Module. Weatherforecast is configurated on just one Page and shows up on every Page after update. I guess found a solutiion on that: On Weatherforcast.js on line 377 this.show(this.config.animationSpeed, { lockString: this.identifier }); is called. I guess this has to be done, when Module is shown up to update UI, but not if Module is hidden. So if (!this.hidden) this.show(this.config.animationSpeed, { lockString: this.identifier }); does the trick.
  • Dropbox-Uploader: how to synchronize a folder with cron job?

    11
    0 Votes
    11 Posts
    4k Views
    S
    @MajorC yes.pm2 reruns regardless how the system was rebooted
  • Cant recieve RSS feed

    rss magicmirror2 feed newsfeed xml
    4
    0 Votes
    4 Posts
    1k Views
    S
    @Abram the current code has no ability to see the header or its contents
  • MMM-Trello black screen

    7
    0 Votes
    7 Posts
    1k Views
    S
    @trappettim see the report at the top of the troubleshooting section with the fix https://forum.magicmirror.builders/topic/13774/2-13-back-screen
  • Stuck trying to sendSocketNotification from my node_helper

    4
    0 Votes
    4 Posts
    721 Views
    S
    @seeshaughnessy you can continue to use axios. preferred as request has been depreciated. just add it to your package.json to get it loaded w your module # create package.json npm init -y # install a library and record it npm install axios --save # in your module folder
  • Has anyone got MMM-Remote-Control working on MM 2.11 ?

    Solved
    31
    0 Votes
    31 Posts
    18k Views
    MrCoffeeM
    @karsten13 Looks like I have got it. I just had to remove the 8080 out of http://192.168.xxx.xxx:8080/remote.html Sorry for that. Thanks for helping me.
  • Troubleshooting MagicMirror modules

    2
    1 Votes
    2 Posts
    3k Views
    FoziF
    @lavolp3 that’s awesome and should be a sticky thread! Thanks for that👍🏻👍🏻
  • How can i control MMM-MyRadio?

    Moved
    4
    0 Votes
    4 Posts
    604 Views
    S
    @Stef no… just looking at the doc shows the messages the radio module expects…
  • Compliments module cannot load remoteFile

    4
    0 Votes
    4 Posts
    686 Views
    S
    @kuqquk try changing address to “0.0.0.0”, from “localhost”,