GPIO in MMM: ModuleToggle with MMM-Buttons is randomly working



  • Issue comes from the buttons requiring an insane amount of presses to trigger, sometimes never triggering, and on rare occasions 2 of the 4 will work perfectly.

    The goal was to have an easy way to have buttons, in this case 4, and each have their certain modules.
    Using code from http://razzpisampler.oreilly.com/ch07.html

    import RPi.GPIO as GPIO
    import time
    
    GPIO.setmode(GPIO.BCM)
    
    GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    
    while True:
        input_state = GPIO.input(18)
        if input_state == False:
            print('Button Pressed')
            time.sleep(0.2)
    
    

    I tested each one button with their own GPIO and each worked every time, so with this knowledge i know the buttons and the wiring is right.

    The code for the config is:

     modules: [
                    {
                    module: 'MMM-ModuleToggle',
                    config: {
                    hide: ["clock"]
                        }
                    },
                    {
                      module: 'MMM-Buttons',
                        config: {
                            buttons: [
                                {
                                    pin: 23,
                                    name: "Button_One",
                                    shortPress: {
                                        notification: "MODULE_TOGGLE",
                                        payload: {hide: [], show: ["calendar", "clock"], toggle:[]}
                                    },
                                    longPress: undefined
                                },
                                {
                                    pin: 13,
                                    name: "Button_Two",
                                    shortPress: {
                                        notification: "MODULE_TOGGLE",
                                        payload:  {hide: ["calendar", "clock"], show: [], toggle:[]}
                                    },
                                    longPress:  undefined
                                }
                            ]
                        }
    
    

    As stated they work, but at very random time.

    Im wondering if im suppose to like preload the knowledge to use GPIO ahead of the booting of the actual Magic Mirror program, or something like, or am i missing a step.

    Thank you in advance.