Feature | Support |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | {
"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" ]
}
}
}
|
Option | Value |
name | any value |
arguments | any value |
stop-command | any value |
start-command | any value |
state | starting
running
stopped
|
pid | 0 - 9 |
Optional Settings
Device Settings
Setting | Default | Format | Description |
poll-interval | 1 | >= 1 | How ofter do we want to check the program state |
GUI Settings
Setting | Default | Format | Description |
readonly | 0 | 1 or 0 | Disable controlling this device from the GUIs |
confirm | 0 | 1 or 0 | Ask for confirmation when switching device |
Comment
The program protocol takes two important 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.