使用代码控制红外或RF设备还是比较麻烦的,所以后来我想到了用ssh连接树莓派并用菜单控制,效果好多了,在做菜单之前我做了一些脚本,这样对控制方便管理,写菜单代码的时候也方便一些。
我的设备有,电视、天威机顶盒、乐视盒子、功放、志高空调、RF灯两个。
红外设备的conf文件分别如下:
电视: tv1.conf 天威机顶盒:tianwei1.conf 乐视盒子:leshi.conf 功放:malanshi.conf 空调:zhigao.conf这些文件名有利于对代码的理解。
例:
我要看乐视盒子,我要功放开机、乐视盒子开机、电视开机并设备成HDMI2输入。
1 #!/bin/bash
2 rm /var/run/lirc/*
3 #删除路径下的文件,否则执行lircd -d /dev/lirc0可能会出错,详见笔记。
4 cp /etc/lirc/remotes/malanshi.conf /etc/lirc/remotes/tv.conf
5 #拷贝文件更换tv.conf.
6 killall -9 lircd #杀掉lircd进程,否则后台会有很多lircd进程。
7 systemctl restart lirc #重启lirc服务。
8 lircd -d /dev/lirc0 #重新加载tv.conf信息。
9 irsend send_once tv key_sat #执行功放开机指令,并设定为SAT源。
10
11 rm /var/run/lirc/*
12 cp /etc/lirc/remotes/leshi.conf /etc/lirc/remotes/tv.conf #拷贝乐视的conf文件覆盖tv.conf
13 killall -9 lircd
14 systemctl restart lirc
15 lircd -d /dev/lirc0
16 irsend send_once tv key_power #发送乐视开机代码。
17
18 rm /var/run/lirc/*
19 cp /etc/lirc/remotes/tv1.conf /etc/lirc/remotes/tv.conf
20 killall -9 lircd
21 sleep 1s
22 systemctl restart lirc
23 lircd -d /dev/lirc0
24 irsend send_once tv key_power #电视开机代码。
25 sleep 25s #暂停25秒,等待电视开机完成。
26 irsend send_once tv key_a #切换视频源,key_a为摇控器视频源切换按键名。
27 sleep 3s #等待3秒,电视反应比较慢。
28 irsend send_once tv key_a
29 sleep 1s
30 irsend send_once tv key_pause #确定视频源,key_pause,为摇控器的OK键。
~
保存上面文件为poweronmediabox.sh,运行时输入:sh poweronmediabox.sh 即可实现自动开机三个设备了。方便了很多。
关机的时候,只在把上面的代码25行以后的去掉就行了。另存为offpowermediabox.sh.
其他摇控开关机的脚本跟这个类似。下图是我做一些脚本和conf文件。
要说明的是remake.sh用这个脚本就可以实现拷贝完文件后使之生效的作用,代码如下:
1 #!/bin/bash
2 rm /var/run/lirc/* #删除lirc文件夹下文件,主要是lirc.pid
3 systemctl restart lirc #重启lirc服务。
4 lircd -d /dev/lirc0 #使conf文件生效。
因为每台机器的环境都不同,所以以上文件只做参考,需根据自己的情况修改,这里只提供一个思路,欢迎留言交流。