• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Custom Commands in @MMM-Remote-Control

Scheduled Pinned Locked Moved Troubleshooting
5 Posts 3 Posters 1.4k Views 3 Watching
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.
  • G Offline
    gkchimz
    last edited by gkchimz Nov 19, 2020, 8:43 PM Nov 19, 2020, 7:58 PM

    I am using a raspberry pi 4. I have a radio frequency transmitter attached to one of my GPIO pins and I am using running a python script through the terminal to send a command that will turn on/off and change the colour of my led lights. (See link below). I have said these files in my MagicMirror folder.

    Is it possible to use custom commands to do this? If so can you help me understand how. Attached are the shell files that are executable and work( when i double click the files in desktop mode - the lights change). How do i link this to MMM-Remote-Control or do the same action in MMM-Remote-Control?

    Config.js

    /* Magic Mirror Config Sample
     *
     * By Michael Teeuw https://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information on how you can configure this file
     * See https://github.com/MichMich/MagicMirror#configuration
     *
     */
    
    var config = {
    	address: "0.0.0.0", 	// Address to listen on, can be:
    	//address: "localhost", 	// Address to listen on, can be:
    							// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
    							// - another specific IPv4/6 to listen on a specific interface
    							// - "0.0.0.0", "::" to listen on any interface
    							// Default, when address config is left out or empty, is "localhost"
    	port: 8080,
    	basePath: "/", 	// The URL path where MagicMirror is hosted. If you are using a Reverse proxy
    					// you must set the sub path here. basePath must end with a /
    	ipWhitelist: [], 	// Set [] to allow all IP addresses
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], 	// Set [] to allow all IP addresses														// or add a specific IPv4 of 192.168.1.5 :
    															// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
    															// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
    															// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
    
    	useHttps: false, 		// Support HTTPS or not, default "false" will use HTTP
    	httpsPrivateKey: "", 	// HTTPS private key path, only require when useHttps is true
    	httpsCertificate: "", 	// HTTPS Certificate path, only require when useHttps is true
    
    	language: "en",
    	logLevel: ["INFO", "LOG", "WARN", "ERROR"],
    	timeFormat: 24,
    	units: "metric",
    	// serverOnly:  true/false/"local" ,
    	// local for armv6l processors, default
    	//   starts serveronly and then starts chrome browser
    	// false, default for all NON-armv6l devices
    	// true, force serveronly mode, because you want to.. no UI on this device
    
    	modules: [
    
    		{
    		    	module: 'MMM-Remote-Control',
    		    	// uncomment the following line to show the URL of the remote control on the mirror
    		     	position: 'bottom_right',
    		    	// you can hide this module afterwards from the remote control itself
    		    	config: {
    				customCommand: {},  // Optional, See "Using Custom Commands" below
    				showModuleApiMenu: true, // Optional, Enable the Module Controls menu
    				// uncomment any of the lines below if you're gonna use it
    				// customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
    				// apiKey: "",         // Optional, See API/README.md for details
    		    		},
    			customCommand: {
    				monitorOnCommand: 'cd ./MagicMirror python3 send.py -p 396 -t 1 11717633',
    				
    			    }
    
    
    
    
    		},
    		{
      			module: "MMM-Remote-Control-Repository",
    		},
    				
    	]
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    

    Shell Script

    cd ./MagicMirror
    python3 send.py -p 396 -t 1 11717633
    

    send.py

    #!/usr/bin/env python3
    
    import argparse
    import logging
    
    from rpi_rf import RFDevice
    
    logging.basicConfig(level=logging.INFO, datefmt='%Y-%m-%d %H:%M:%S',
                        format='%(asctime)-15s - [%(levelname)s] %(module)s: %(message)s',)
    
    parser = argparse.ArgumentParser(description='Sends a decimal code via a 433/315MHz GPIO device')
    parser.add_argument('code', metavar='CODE', type=int,
                        help="Decimal code to send")
    parser.add_argument('-g', dest='gpio', type=int, default=17,
                        help="GPIO pin (Default: 17)")
    parser.add_argument('-p', dest='pulselength', type=int, default=None,
                        help="Pulselength (Default: 350)")
    parser.add_argument('-t', dest='protocol', type=int, default=None,
                        help="Protocol (Default: 1)")
    parser.add_argument('-l', dest='length', type=int, default=None,
                        help="Codelength (Default: 24)")
    parser.add_argument('-r', dest='repeat', type=int, default=10,
                        help="Repeat cycles (Default: 10)")
    args = parser.parse_args()
    
    rfdevice = RFDevice(args.gpio)
    rfdevice.enable_tx()
    rfdevice.tx_repeat = args.repeat
    
    if args.protocol:
        protocol = args.protocol
    else:
        protocol = "default"
    if args.pulselength:
        pulselength = args.pulselength
    else:
        pulselength = "default"
    if args.length:
        length = args.length
    else:
        length = "default"
    
    logging.info(str(args.code) +
                 " [protocol: " + str(protocol) +
                 ", pulselength: " + str(pulselength) +
                 ", length: " + str(length) +
                 ", repeat: " + str(rfdevice.tx_repeat) + "]")
    
    rfdevice.tx_code(args.code, args.protocol, args.pulselength, args.length)
    rfdevice.cleanup()
    

    apt-get install python3-pip

    pip3 install rpi-rf

    https://github.com/milaq/rpi-rf/tree/master/scripts

    S 1 Reply Last reply Nov 19, 2020, 8:20 PM Reply Quote 0
    • S Offline
      sdetweil @gkchimz
      last edited by Nov 19, 2020, 8:20 PM

      @gkchimz you use a curl command to send a request to the remote control api url

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      1 Reply Last reply Reply Quote 0
      • G Offline
        gkchimz
        last edited by Nov 19, 2020, 8:47 PM

        @sdetweil - thank you very much for your prompt response. I have not learned about curl commands yet ( although i know i have copied and pasted one during installation of modules.

        Are you able to point me towards an example or a good page that i may be able to lean the relevant things quickly please.

        S 1 Reply Last reply Nov 19, 2020, 10:06 PM Reply Quote 0
        • S Offline
          sdetweil @gkchimz
          last edited by Nov 19, 2020, 10:06 PM

          @gkchimz Google is your friend

          Also every command has help

          curl --help

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          1 Reply Last reply Reply Quote 0
          • E Offline
            ezeholz
            last edited by Nov 20, 2020, 4:21 AM

            Hello! Ezequiel here. customCommands should be inside the config of the Remote Control. You can raise a question in the issue page for further instructions. Cheers :D

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            1 / 1
            • First post
              5/5
              Last post
            Enjoying MagicMirror? Please consider a donation!
            MagicMirror created by Michael Teeuw.
            Forum managed by Sam, technical setup by Karsten.
            This forum is using NodeBB as its core | Contributors
            Contact | Privacy Policy