A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • Prioritize loading specific module

    10
    0 Votes
    10 Posts
    2k Views
    S

    @lavolp3 I have done that :)

  • How do you convert xml to json (ideally without dependencies)

    7
    0 Votes
    7 Posts
    1k Views
    A

    @sdetweil
    @cowboysdude
    @lavolp3

    Thanks for your posts, i got some further.

    i added following line in my node_helper.js const parser = require("./MMM-Dreambox-xml2json.js");

    So node_helper.js checks for MMM-Dreambox-xml2json.js within the same directory.
    After this, i can use a function of MMM-Dreambox-xml2json.js inside of node_helper.js by calling parser.functionname() in my case parser.xml2json().

    AxLED

  • Conditional formatting of config (e.g., MMM-Unsplash)

    3
    0 Votes
    3 Posts
    726 Views
    K

    @seann good point, I could just put the collections directly in the module rather than the config, that would do it. @parnic suggested using profile switcher, or at least there may be functionality to grab. I should be able to take it from here – pretty simple. The most time-consuming part will be creating the collection of collections.

  • Trafficmaps

    63
    0 Votes
    63 Posts
    59k Views
    Z

    @strawberry-3-141 Ok, then it was me chasing ghosts again lol. I really appreciate the help and advice, thanks.

  • Installing and configuring Magic Mirror on Raspberry Pi

    1
    0 Votes
    1 Posts
    534 Views
    O

    Installing Magic Mirror

    The requirements are very simple to start, Stretch Raspbian need be installed and configured with an IP address.

    When the installation will ask us if we want to start by default when you start Raspberry or not, This is what everyone wants. In my case I prefer later start for different reasons, To do this I have added a script in ‘~ / .config / lxsession / LXDE-pi / autostart’ called for example’@/home/pi/magic_mirror_arranca.sh’ which has the following content:
    view source
    print
    ?
    1
    cd /home/pi/MagicMirror/
    2
    npm start # Pi2 y Pi3
    3
    node serveronly # Pi1 y Zero

    thanks
    https://offshorededi.com/

  • Magic Mirror modul position

    2
    0 Votes
    2 Posts
    3k Views
    B

    You can adjust the full MM body border into the custom.css file.
    (/MagicMirror/css/custom.css)

    like that (play with the values until you’re happy) :

    body { margin: 20px; height: calc(100% - 40px); width: calc(100% - 40px); }

    You should maybe also check the settings of your screen itself (depending if you have that issue outside MM or not).

  • Best way to display recipe

    5
    0 Votes
    5 Posts
    2k Views
    R

    @mykle1 Great, thanks, I’ll take a look at the voice modules and see what I can come up with. I also just found MMM-ImageFileWatcher which looks like it may do a lot of what I was looking for.

  • This topic is deleted!

    2
    0 Votes
    2 Posts
    51 Views
  • Need helping sending notifications between module and module node_helper

    8
    0 Votes
    8 Posts
    2k Views
    S

    @sdetweil Perfect, thank you! :)

  • 0 Votes
    10 Posts
    2k Views
    B

    @sdetweil
    Works like a charm.
    Thank you very much, I’ve learnt something thanks to you and appreciated your support for debug.
    See you around.

  • 0 Votes
    3 Posts
    1k Views
    richland007R

    @hacaro Or read here from the beginning and good luck i still haven’t reached my goal and make it work but others have achieved it;

    https://forum.magicmirror.builders/topic/8569/mmm-mirrormirroronthewall-installation-issue/124

    D

  • Error 3154 – Restore SQL database is terminating abnormally

    2
    0 Votes
    2 Posts
    846 Views
    N

    @rogermathew said in Error 3154 – Restore SQL database is terminating abnormally:

    Hello Experts,

    Our team is developing a module which takes data from SQL Sever database 2014 and shows the data on Magic Mirror screen. We are in trouble while accessing database, all data not show on the screen. The, we tried to restore SQL database and face SQL Error 3154. To fix this kind of error, we are tried T-SQL command but no result found. Then we try to use WITH REPLACE while using restore script.

    RESTORE FILELISTONLY FROM DISK = 'C:\company_file.bak' GO RESTORE DATABASE company_file FROM DISK = 'C\:company_file.bak' WITH MOVE 'company_file_Data' TO 'C:\Database\company_file.mdf', MOVE 'companyfile_Log' TO 'C:\Database\companyfile.ldf', REPLACE

    After executing these commands we are still facing error. Then someone suggested me to use below resources, but we are confused which one is better.
    Please provide full proof method.
    https://forum.magicmirror.builders/topic/6803/magicmirror-to-mssql
    https://www.essentialsql.com/error-3154-restore-sql-database/
    https://www.stellarinfo.com/sql-recovery.php

    I have no idea, but I have a suggestion :
    Create a proxy service, so you donot have to access database directly but a distant service.
    This last will access the database. You can use the platform you want especially .Net technology which is very easy to integrate with SQL Server.

  • Music Player Module

    3
    0 Votes
    3 Posts
    2k Views
    N

    @maukoell said in Music Player Module:

    Hello,
    I am trying to create a module which plays music from a directory. I wanted to use two buttons to control it. One for Pause/Play and one to skip the current song. But unfortunately when I start the MM2 I always get the message that it is not able to find the helper for my module. I’m new to node.js so maybe there are just some basic mistakes.

    My module:

    Module.register("MMM-MusicPlayer",{ defaults: { playButtonPIN: 10, nextButtonPIN: 12, clickDelay: 500, musicPath = "/home/pi/MagicMirror/modules/MMM-MusicPlayer/music", }, start: function() { this.sendSocketNotification("BUTTON_CONFIG", this.config); Log.info('Starting module: ' + this.name); } });

    My node_helper:

    "use strict"; const NodeHelper = require("node_helper"); const gpio = require("onoff"); var path = require('path'); var fs = require('fs'); const { Howl, Howler } = require('howler'); var sound; var musicList = []; var index = 0; var started; var config; module.exports = NodeHelper.create({ start: function () { started = false; }, // Subclass socketNotificationReceived received. socketNotificationReceived: function (notification, payload) { const self = this; if (notification === 'BUTTON_CONFIG' && started === false) { config = payload; self.fromDir(config.musicPath, "mp3"); self.createSound(); var GPIO = require('onoff').Gpio; var button1 = new GPIO(config.playButtonPIN, 'in', 'both', { persistentWatch: true, debounceTimeout: config.clickDelay }); button1.watch(function (err, state) { // 1 == pressed, 0 == not pressed if (state === 1) { if (sound.playing()) { sound.pause(); } else { sound.play(); } } }); var button2 = new GPIO(config.playButtonPIN, 'in', 'both', { persistentWatch: true, debounceTimeout: config.clickDelay }); button2.watch(function (err, state) { // 1 == pressed, 0 == not pressed if (state === 1) { self.playNext(); } }); started = true; } }, fromDir: function(startPath, filter) { if (!fs.existsSync(startPath)) { Log.info("no dir ", startPath); return; } var files = fs.readdirSync(startPath); var i; var fullPath; var filename; var stat; for (i = 0; i < files.length; i+=1) { fullPath = path.join(startPath, files[i]); filename = files[i]; stat = fs.lstatSync(fullPath); if (stat.isFile()) { if (filename.indexOf(filter) >= 0) { musicList.push(fullPath); } } } }, playNext: function() { if (sound.playing()) { sound.stop(); } index += 1; if (index === musicList.length()) { index = 0; } sound.play(index); }, createSound: function() { sound = new Howl({ src: musicList }); } } );

    Maybe someone can help me.
    Thanks in advance

    I don’t think that your code respects helpers as described in official documentarion,
    Or we are not talking about the same helpers Pnr Status.TextNow

  • MMM-Bible

    2
    0 Votes
    2 Posts
    2k Views
    bheplerB

    You probably should not update your compliments.js file. If you update your MagicMirror framework, the new version will overwrite your changes to the module.

    You probably want to add this modification to the module configuration in the /home/pi/MagicMirror/config/config.js file.

  • Error PVOutput widget module

    2
    0 Votes
    2 Posts
    789 Views
    bheplerB

    @ernst-jan - Is your error when you are trying to install the module or when you’re trying to run the module?

    Assuming the install went wrong, what command did you use to install it? Remember to use the markdown features when you reply.

  • Dom Update refresh take to long

    5
    0 Votes
    5 Posts
    2k Views
    S

    do NOT do XML requests IN the getDom function… do them outside (timer) and call updateDom to signal changes to be presented. getDom() should ONLY set info for presentation… nothing else.
    preparation should be done somewhere else… (timer, event handler, …)

    don’t replace the entire wrapper div each time, like ripping the heart out

    var wrapper = document.createElement("div"); don’t look up (getElementbyId) over and over… get it, use it multiple times
    6 lookups here, need only 2… note that you are searching the ENTIRE web page (document.), not YOUR modules content (wrapper .div), and from the very top… so as the page gets fuller and fuller, the search has more things to look thru… case 1783: document.getElementById("wohnzimmer_beamermodus_bezeichner").innerHTML = "Beamermodus:"; document.getElementById("wohnzimmer_beamermodus_bezeichner").style.float = "left"; document.getElementById("wohnzimmer_beamermodus_bezeichner").style.width = "94%"; document.getElementById("wohnzimmer_beamermodus").innerHTML = status; document.getElementById("wohnzimmer_beamermodus").style.float = "left"; document.getElementById("wohnzimmer_beamermodus").style.width = "6%"; don’t update stuff that didn’t change
    here u create these elements without consideration if they already exist… var schlafzimmer_heizungsgruppe_bezeichner = document.createElement("div"); don’t create lots of new content… (createElement) if you don’t need to.
    here u create these elements without consideration if they already exist…
  • MMM-Scrobbler adding last played song

    1
    0 Votes
    1 Posts
    500 Views
    G

    I’m using the MMM-Scrobbler and really liking it. I would also like to display the last played song if there is no current song playing. Now i wonder if somebody can help me with how I can make this work?

    Thank you for reading!

  • MagicMirror² Hackathon 2018

    11
    3 Votes
    11 Posts
    3k Views
    strawberry 3.141S

    Thanks to @justjim1220 for contributing in two issues and thanks to @idoodler for reviewing and testing an issue

    48h Hackathon recap

    Metric Total Ø per hour Issues handled 12 0.25 Projects changed 7 0.15 Lines added +1.587 +33 Lines removed -1,487 -31

    Merge requests that are still open for review and testing:
    https://github.com/fewieden/MMM-AlarmClock/pull/22
    https://github.com/fewieden/MMM-voice/pull/38
    https://github.com/fewieden/MMM-Fuel/pull/32

  • Notification between modules

    Solved
    10
    0 Votes
    10 Posts
    2k Views
    G

    @idoodler thanks for the help.The console part in the dev tool does help a lot!

  • how and where should I use the hide&show function offered by MM?

    Solved
    7
    0 Votes
    7 Posts
    2k Views
    A

    I use MMM-ModuleScheduler to show or hide modules. It works very simple out of the box.