Google HomeとNature Remoでテレビのオンとオフを独立させる




Google Homeで家電操作のOK Google化

昨年Google HomeとNature Remoを購入してからわが家はOK Google化が進んでいる。

今ではエアコン、テレビ、照明、オーディオ、ChromecastなどもGoogle Homeから操作出来るようになった。
ChromecastはNetflixやYoutubeなどの動画サービスの動画をスマホから送って再生出来るのでとても便利。
Nature Remoはスマホアプリでリモコンのように使用できるのも便利。

テレビ確実にオンオフ出来ない問題

Nature Remoでいろいろ試してまず気になったのはテレビ。
テレビのリモコンはだいたいトグル式でオンの場合はオフ、オフの場合はオンになるため確実にオン、オフが出来ない。

しかし、SONYのテレビは電源オンと電源オフが独立して存在するらしい。
今回操作するテレビはソニーの BRAVIA KJ-32W730C という機種。

方法1.Arduino UnoでNature Remo学習用リモコンを作成して登録

Nature Remoは本体に向けてリモコンのボタンを押すことでリモコンのボタンを学習出来るが、今回はリモコンにない操作をしたいためそれはできない。
たまたまArduino Unoという小型コンピューターのおもちゃを持っていたのでこれに赤外線LEDをつけてリモコン代わりにしてNature Remoに登録することにした。

電子工作の知識はほぼないがネットで調べておそらく使えそうな赤外線LEDと抵抗を秋葉原の秋月電子で購入。
お粗末ではあるが以下のような仕組みが完成した。

Nature Remoに学習させる装置

正しく出来ているかは不明だが期待通りに赤外線送信出来ていたのでたぶん大丈夫だろう。

赤外線送信用コードを作成

ArduinoではIRRemoteというライブラリを使用。
ライブラリに同封されていたIRsendDemoというものをほぼそのまま使用して以下のようにした。

#include <IRremote.h>

IRsend irsend;

void setup() {
	pinMode(13, OUTPUT);  
}

void loop() {
	digitalWrite(13, HIGH);
	for (int i = 0; i < 3; i++) {
		irsend.sendSony(0xA90, 12);
		delay(40);
	}
	digitalWrite(13, LOW);
	delay(5000);
}

12行目の irsend.sendSony(0xa90, 12); がこのライブラリを使用して赤外線を送信する記述のようなのでいろいろネットを調べたところ以下が分かり、無事Nature Remoに電源オン、電源オフを登録することができた。
ついでに入力切り替えも直接出来るようなって便利になった。

irsend.sendSony(0xA90, 12);	//電源オンオフ
irsend.sendSony(0x750, 12);	//電源オン
irsend.sendSony(0xF50, 12);	//電源オフ
irsend.sendSony(0x30, 12);		//入力切替 ビデオ
irsend.sendSony(0x2D58, 15);	//入力切替 HDMI1
irsend.sendSony(0x6D58, 15);	//入力切替 HDMI2
irsend.sendSony(0x1D58, 15);	//入力切替 HDMI3
irsend.sendSony(0x5D58, 15);	//入力切替 HDMI4

Nature Remoに登録

あとはArduinoから発信される赤外線をNature Remoに登録して目的達成。

「OK Google モニターの電源消して」のようなテレビとは別のデバイス名で登録してコントロール出来るようにしている。



方法2.Nature Remo Cloud APIを使用して登録

方法1が出来た後に気づいたが、Nature RemoはAPIを使用してリモコンのボタンを登録出来るらしい・・・
調べたところ結構簡単にできることが分かったので、簡単に登録できるページを作成した。

Nature RemoにSONYのテレビのオンオフを登録するページ
  1. https://home.nature.global/ からAccess Tokenを発行
    ※Nature RemoにログインしているGoogleアカウントでログイン
  2. Access Token入力欄に入力し、「家電一覧を取得」を押す
  3. Nature Remoに登録している家電一覧が表示されるので、テレビのAppliance IDをAppliance ID入力欄に入力
    ※入力したAppliance IDの家電にボタンが登録される。テレビ以外も可。
  4. 登録するボタンを押す
    成功すると登録完了と表示される
  5. Nature Remoアプリのテレビのリモコンにボタンが追加される

特にログが残るような事はしていないが発行したAccess Tokenは削除しておいてよい気がする。

湿度センサー、照度センサー、人感センサーが搭載されていない廉価版


関連記事