MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord
    MagicMirror² v2.24.0 is available! For more information about this release, check out this topic.

    Help creating a shutdown button?

    Troubleshooting
    troubleshoot help button switch shutdown
    3
    7
    4170
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bez252 last edited by

      Hi, I am trying to add a button/switch to my mirror for safe shutdown. I am using RPi3 model B.

      I have this: https://www.amazon.com/gp/product/B0170B75EU/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

      The problem I am having is with adding the code to make it function as a shutdown button.

      Full disclosure: I know absolutely nothing about how to use python.

      Any help you can provide would be appreciated.

      J 1 Reply Last reply Reply Quote 0
      • J
        Jopyth Moderator @bez252 last edited by Jopyth

        @bez252 I made a module (acutally two) for this, however they are not (very well) documented and I just made them for myself. But if you want, I could upload them.

        I have four buttons conncted to the RPi, and one of them shuts down the system on a long press (>3 seconds).

        There is also this module, which you can adapt by adding a shutdown command.

        Helpful sticky: How to troubleshoot

        B 2 Replies Last reply Reply Quote 0
        • B
          bez252 @Jopyth last edited by

          @Jopyth
          That would be awesome, thanks.

          1 Reply Last reply Reply Quote 0
          • pugsly
            pugsly last edited by

            I got one of these for my mirror, still havn’t built or assembled it yet.

            https://www.pi-supply.com/product/pi-supply-raspberry-pi-power-switch/

            1 Reply Last reply Reply Quote 0
            • B
              bez252 @Jopyth last edited by bez252

              @Jopyth So, with the module you linked, would these default settings mean that it activates when pin 5 is grounded? I apologize for all these dumb questions. Iḿ really new to this entire scene. Also, what would I need to change to make it shutdown?

              ´/* global Module */

              /* Magic Mirror

              • Module: MMM-Button
              • MIT Licensed.
                */

              Module.register(‘MMM-Button’,{
              defaults: {
              buttonPIN: 5,
              //time in miliseconds before another button click is recognized
              clickDelay: 500,
              },
              // Override socket notification handler.
              socketNotificationReceived: function(notification, payload) {
              if (notification === “BUTTON_PRESSED”){
              this.sendNotification(notification, payload)
              }
              },
              start: function() {
              this.sendSocketNotification(‘BUTTON_CONFIG’, this.config);
              Log.info('Starting module: ’ + this.name);
              }
              });´

              1 Reply Last reply Reply Quote 0
              • B
                bez252 last edited by

                Also, would these instructions work with the button I have?: http://www.mausberrycircuits.com/pages/setup

                Or would they only work with the mausberry circuits buttons that attach to the power cord?

                J 1 Reply Last reply Reply Quote 0
                • J
                  Jopyth Moderator @bez252 last edited by Jopyth

                  @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;
                  

                  Helpful sticky: How to troubleshoot

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Enjoying MagicMirror? Please consider a donation!
                  MagicMirror created by Michael Teeuw.
                  Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                  This forum is using NodeBB as its core | Contributors
                  Contact | Privacy Policy