IRとパケット両用します
簡単なホームオートメーションでしょうか?全体像は、

簡素化した図ですけど、LAN上のLC-45W5に対してRaspberry PI Zeroからパケットを送って、電源のon/offや入力選択をします。HDMI入力は数が限られており、HDMI-4の先にHDMIセレクタ

をつないでます。これの入力切り替えをIRでできます。それにしても汚いですな。(笑)IRは、

このRaspberry PI Zeroから上図で見えているIR LEDから出してます。カバーオープンのまま放置してるので、これもまた埃だらけで見せたくないけど、説明のために仕方なくお出まし。IRは多方面に配るので、中継器を使ってます。それが、

最初の入力は、

これで、あと配るのは、

対Digaですね。IRはLC-45W5にも飛ばしているんですが、応答があまりにも遅いので、パケット制御してます。さて、Raspberry PI上にwebserverを建てて、phpでスクリプト書けば、

phpのコードは、
<html>
<head>
<meta name="viewport" content="width=450">
</head>
<body>
<H1>weblirc</H1>
<HR width="400px" align=left>
<?php
if($_POST["light"]=="CHROME"){
//system("/usr/bin/python3 /home/pi/ir/irrp.py -p -g25 -f /home/pi/ir/codes tv:on");
system("/home/pi/ir/chrome");
}else if($_POST["light"]=="BOTH"){
// system("date");
system("/home/pi/ir/bothset");
} else if($_POST["light"]=="PS5"){
// system("/usr/bin/python3 /home/pi/ir/irrp.py -p -g25 -f /home/pi/ir/add netflix:on");
system("/home/pi/ir/ps5");
} else if($_POST["light"]=="Switch"){
system("/home/pi/ir/switch");
}
?>
<HR width="400px" align=left>
<form action="./" method="post">
<input type="submit" value="CHROME" name="light" style="width:200px;height:80px">
<input type="submit" value="BOTH" name="light" style="width:200px;height:80px">
<input type="submit" value="PS5" name="light" style="width:200px;height:80px">
<input type="submit" value="Switch" name="light" style="width:200px;height:80px">
</form>
</body>
</html>
こんなふうにブラウザからセットできますが、これすらも面倒です。ブラウザ起ち上げて、指定urlへ行き、画面を押して選択しないといけないので、その手間が面倒ですね。Aquosの電源入れて、HDMI-4を選択して、切り替え器はChromeCast Ultraにするためのスクリプトを直で起動したいですね。ボタンクリック一発で。そのためには、上記のhtmlでの
/home/pi/ir/chrome
を遠隔起動すればいいのですが、iosからはボタン一発でできます。それは、以前の記事の
を参考にしてショートカットを作ればよいです。ただし、今回は指定urlをchoromeから開くではなく、SSH経由でスクリプトを実行です。

スクリプトchromeの中身は、
#!/bin/sh
/usr/bin/python3 /home/pi/ir/irrp.py -p -g25 -f /home/pi/ir/hdmi hdmi:2
/home/pi/ir/aq2.sh
sleep 1
/home/pi/ir/inp4m.sh
#
です。
コメント