SiriとRaspberryPiの連携によるテレビの電源オン・オフを実現する
この記事の概要
SiriショートカットのSSH機能を用いてRaspberryPi経由で、音声により確実なテレビの電源オン・オフを実現する。
Siriを利用するがSSHが使える環境であれば、iPhone以外でも利用可能であると考える。
NatureRemoなどの赤外線を利用するコントローラでテレビ電源のオン・オフを行う場合、オン・オフが同じ赤外線信号を利用しているため、確実な電源オン・オフができない。
赤外線を利用する場合は電源をオフにしたい場合でも、テレビの電源が元からオフになっていると、オンになってしまうという欠点がある。
テレビが電源オン・オフの状況に関わらず、常に確実な電源オン・オフを実現するようにする。
環境
- iOS 12.4.1
- Raspberry Pi zero WH(Raspbian 10.0)
- REGZA J8
- Siriショートカット(App Storeでインストール)
前提条件
- ネットワークに繋がった状態のRaspberryPiの準備
- HDMI CECに対応したテレビ(HDMIの連動機能を備えたテレビ。最近のテレビであればほとんどのものは対応)
設定方法
Raspberry Piの設定
ネットワーク設定
- DHCPにより払い出されているIPアドレスの確認
- ネットワークに繋がった状態のRaspberryPiの準備
- HDMI CECに対応したテレビ(HDMIの連動機能を備えたテレビ。最近のテレビであればほとんどのものは対応)
設定方法
Raspberry Piの設定
ネットワーク設定
- DHCPにより払い出されているIPアドレスの確認
ifconfig
下記ではWifiを使用しているのでwlan0の中の
inet 192.168.11.60 netmask 255.255.255.0
をメモしておく
pi@raspberrypi:~ $ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (ローカルループバック)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.11.60 netmask 255.255.255.0 broadcast 192.168.11.255
inet6 fe80::f02d:e7a5:404c:e957 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:40:8b:b7 txqueuelen 1000 (イーサネット)
RX packets 8516 bytes 2877130 (2.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 158 bytes 31002 (30.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- デフォルトゲートウェイを調べる
route
下記では192.168.11.1
がデフォルトゲートウェイに当たる
pi@raspberrypi:~ $ route
カーネルIP経路テーブル
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
default 192.168.11.1 0.0.0.0 UG 302 0 0 wlan0
192.168.11.0 0.0.0.0 255.255.255.0 U 302 0 0 wlan0
-
nano /etc/dhcpcd.conf
を実行しテキスト編集する
#WLAN0
interface wlan0
static ip_address=192.168.11.60/24
←上記で調べたIPとサブネットの記載
static routers=192.168.11.1
←上記で調べたデフォルトゲートウェイを設定
static domain_name=8.8.8.8
static domain_name_servers=8.8.8.8
pi@raspberrypi:~ $ nano /etc/dhcpcd.conf
#WLAN0
interface wlan0
static ip_address=192.168.11.60/24
static routers=192.168.11.1
static domain_name=8.8.8.8
static domain_name_servers=8.8.8.8
- 再起動
sudo reboot
SSHの設定
sudo systemctl enable ssh
sudo systemctl start ssh
cec-clientのインストール
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install cec-utils -y
Raspberry Piとテレビの接続
テレビとRaspberry PiをHDMIにて接続
Siriショートカットに登録
テレビ電源オン用のショートカットを作成
コマンドには下記を記載
echo 'on 0' | cec-client -s
テレビ電源オフ
テレビ電源オン用のショートカットを作成
コマンドには下記を記載
echo 'standby 0' | cec-client -s
参考サイト
Author And Source
この問題について(SiriとRaspberryPiの連携によるテレビの電源オン・オフを実現する), 我々は、より多くの情報をここで見つけました https://qiita.com/vaioha/items/b2e1e841145a587dc068著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .