User Tools

Site Tools


program_v7_0

Program

FeatureSupport
Sending
Receiving
Config

Supported Brands

None

Sender Arguments

-t --running             start the program
-f --stopped             stop the program
-n --name=name           name of the program

Config

"devices": {
	"XBMC": {
		"protocol": [ "program" ],
		"id": [{
			"name": "xbmc"
		}],
		"program": "/usr/local/lib/xbmc/xbmc.bin",
		"arguments": "",
		"stop-command": "service xbmc stop",
		"start-command": "service xbmc start",
		"state": "running",
		"pid": 11642
	}
},
"gui": {
	"xbmc": {
		"name": "XBMC",
		"group": [ "Programs" ],
		"media": [ "all" ]
	}
}

Optional Settings

Device Settings

SettingDefaultFormatDescription
poll-interval1 >= 1How ofter do we want to check the program state
SettingDefaultFormatDescription
readonly01 or 0Make the GUI element readonly
confirm01 or 0Ask for confirmation when switching device

Comments

The program protocol takes two important arguments

  • The program
  • The arguments

You can run ps aux to find out what these are. An example:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     11622  0.0  2.3  20216  8860 tty4     Ssl+ 20:04   0:01 /usr/local/sbin/splash-daemon
root     11636  0.0  0.4   4096  1540 ?        Ss   20:04   0:00 sudo -u xbian /usr/local/lib/xbmc/xbmc.bin --standalone -fs --lircdev /run/lirc/lircd
xbian    11642 22.5 12.6 390836 48280 ?        RNl  20:04  15:09 /usr/local/lib/xbmc/xbmc.bin --standalone -fs --lircdev /run/lirc/lircd
xbian    11734  0.0  0.2   2692  1092 ?        S    20:04   0:00 /bin/bash
root     11868  0.0  1.4   9732  5432 ?        Ss   20:04   0:00 python /usr/local/sbin/upstart-xbmc-bridge.py
root     11908  0.0  0.0      0     0 ?        S    20:06   0:00 [btrfs-delalloc-]
root     13078  0.0  0.0      0     0 ?        S    21:05   0:00 [kworker/u2:0]
root     13085  0.0  0.0      0     0 ?        S    21:08   0:00 [btrfs-worker-2]
root     13166  0.0  0.0      0     0 ?        S    21:10   0:00 [kworker/u2:1]
root     13186  0.0  0.2   4424  1116 pts/2    R+   21:11   0:00 ps aux

In thise case, i want to control XBMC. The xbian entry with the PID 11642 is what i want to use. The first word is the program name. In this case /usr/local/lib/xbmc/xbmc.bin. Everything that comes after are the arguments –standalone -fs –lircdev /run/lirc/lircd. pilight will now check for a program that matches these exact parameters. So the protocol looks for processes matching those lines and when a process is found, it updates the pid value accordingly. (The pid is just informative.)

If you omit the arguments value, all matching programs will be processes with or without matching arguments. If there are more than once matches, pilight will use the first.

program_v7_0.txt · Last modified: 2015/11/27 22:09 (external edit)