A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • 2 Votes
    2 Posts
    420 Views
    KristjanESPERANTOK
    Nice! :smiley: Please add it to the modules list: https://github.com/MagicMirrorOrg/MagicMirror/wiki/3rd-party-modules.
  • Turn pages with physical button

    Solved Troubleshooting button page raspberry pi
    3
    0 Votes
    3 Posts
    699 Views
    G
    @sdetweil Thanks, that is excatly what i was looking for
  • MMM-flic

    System button profile layout profileswticher bluetooth flic
    2
    1 Votes
    2 Posts
    974 Views
    brobergB
    @da4throux excellent! Maybe now I will have the motivation to setup the flic buttons I got two years ago 😁
  • Music Player Module

    Development music help node.js button player
    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
  • 0 Votes
    1 Posts
    935 Views
    F
    Hi, I am building an app with different buttons which the user can define for them selfes what happens when they are pressed. This information is located in the configuration array: config = { button : { name : "bla", callback : function(){} } } and the class organnizing it has a refrence to that button and subscribes to the click event and triggers said callback when clicked. How can I use module.sendSocketNotification in this configuration for the button callback?
  • 0 Votes
    2 Posts
    2k Views
    P
    install the MMM-Admin module. It will serve up a webpage and you can control the HDMI from there…even use it on your phone. works well
  • How do notifications work?

    Troubleshooting notifications button profileswticher
    11
    0 Votes
    11 Posts
    9k Views
    cowboysdudeC
    @Sruc91 console.log(your output);
  • 2 Votes
    43 Posts
    39k Views
    KamiSchamiK
    Hi, suddenly the border of my buttons are black. I no longer know whether I have adjusted something. Where can i search? By the way, great module.
  • 0 Votes
    7 Posts
    5k Views
    J
    @bez252 Actually what they describe might also work for you, based on a quick glance through the setup code. To shutdown from the node_helper you need to change some code in the file(will be in MMM-Button/node_helper.js in your file system). Here is an example from my module to shut down the RPi, you can replace the self.sendSocketNotification(...) in the node_helper with a similar command: exec('sudo shutdown -h now', null); Also, at the beginning of the file you need to include the exec function, like here: const exec = require('child_process').exec;
OSZAR »