Node-redでスマートハウス-LG製テレビを操作してみる(1/5)

スマートホーム
スポンサーリンク

はじめに

我が家にも有機ELテレビがやってきました。国産メーカのテレビも、有機ELパネルはほとんどがLG製のパネルを利用しているらしく「同じパネルなら安い方がいいんじゃない?」という事でOLED 55C7Pを購入!

このLG製のテレビ、内部はwebOSというOSで動作していてWeb APIが公開されているんです。そこで、今回はLG製のテレビをnode-redから操作してみたいと思います。

やりたいこと

最終的にやりたいのは、以下のようにAmazon Alexaとスマホを使って、テレビのチャンネルやYoutube動画を切り替える事です。
 1-1.(子供が)Amazon Alexaに「テレビをプリキュアにして」という
 1-2.(大人が)スマホから指定のYoutube動画のボタンを押す
 2.テレビのアプリをYoutubeアプリに切り替え
 3.プリキュアの動画を再生

ちなみに、テレビをNode-redから操作するためには、テレビがLANに繋がっていることが前提となりますので、有線かWifiでLANに接続しておきましょう。

実現に向けた連載

やりたいことを実現するために、以下のように少しずつに記事を書いていきます(予定)。

 1回目:Node-redからテレビの電源を消す ←この記事
 2回目:Node-redからテレビのチャンネルを変える
 3回目:Node-redからYoutubeアプリを起動して動画を再生する
 4回目:スマホからテレビを操作できるようにする
 5回目:Alexaから声でテレビを操作できるようにする
 付録:Wake-On-LANでテレビの電源をつける
 付録:Gravioで子供用プリキュアボタン

1回目:Node-redからテレビの電源を消す

第1回目では、Node-redにlgtvパレットを追加して、テレビの電源を消したり、アプリを切り替えたりする事をできるようにしましす。webOSでは、テレビも一つのアプリとして扱われているので、テレビを見るにはアプリをテレビアプリに切り替えないといけないんです。

node-red-contrib-lgtvのインストール

Node-redには、LG製のテレビを操作するためのパレットnode-red-contrib-lgtvが用意されています。このパレットをインストールしていきます。

パレットの管理画面の表示

テレビと同一LANに接続されたPCやラズパイにインストールされているNode-redを開き、右上の「三」のアイコンからパレットの管理画面を開きます。Node-redのインストール方法はあちこちにあると思いますので割愛します。

lgtvノードの検索と追加

パレットの管理画面の左の「パレット」を選択し、「ノードを追加」のタブを選択します。次に、検索欄に「lgtv」と入力して、ノードを検索します。検索結果として出てきたnode-red-contrib-lgtvにある「ノード追加」のボタンをクリックします。

警告画面が出ますが、気にせずに「追加」ボタンを押しましょう。

少し待つ(私の環境では3分ほど)とlgtvのパレットがインストールされ、Node-red画面の左側の一番下に追加されます。

controlノードの追加

テレビの基本的な動作(電源を消したり、音量を上げたい下げたり)を行うにはcontrolノードを利用します。早速利用してみましょう。

controlノードの追加

左側のパレットからcontrolノードをドラックして追加します。

controlノードの設定画面の表示

追加したcontrolノードをダブルクリックして設定画面を開きます。

③テレビの電源を入れる

このタイミングで操作される側のテレビの電源を入れておきましょう。

lgtv-configの設定

設定画面の「鉛筆」のアイコンを追加し、lgtv-configの設定画面を表示させ。テレビのIPアドレスを入力します。ちなみに、テレビのIPアドレスは、テレビの詳細設定画面→ネットワーク→有線ネットワークと選択して行くと確認できます。

接続の確認

設定画面にある「Connect」ボタンを押しましょう。

「Connect」ボタンを押すと、テレビの画面に接続確認の画面が表示されます!
テレビのリモコンで迷わず「はい」を押しましょう。

追加・完了ボタンを押す

テレビへの接続がうまくいったら、Node-redの画面で「追加」ボタンを押しましょう。

⑦続いて、「完了」ボタンを押しましょう。

payloadの設定

controlノードを使って、どんなテレビ操作を行うかはplayloadに記載します。それでは、やってみましょう。

templateノードの追加

画面左側のパレットの上の方にあるtemplateノードをドラッグして追加します。

templateノードの設定

追加したtemplateノードをダブルクリックして設定画面を開き、以下のように設定します。
 ・名前:turnOff ※なんでも良い
 ・設定先:msg.payload ※デフォルトのまま
 ・形式:平文
 ・構文:なし
 ・テンプレート:turnOff

完了ボタンの押下

上記を設定したら「完了」ボタンを押しましょう。

ノードの接続

追加したcontrolノードとtemplateノードを接続し、ちゃんと動作するか確認してみましょう。

①injectノードの追加とノードの接続

以下の図のように、injectノードを追加し、injectノード→templateノード→controlノードの順に接続します。

デプロイ

画面右上の「デプロイ」ボタンを押してデプロイしましょう。これ、ほんとに私よく忘れるんですよ!

接続の確認

controlノードの下に「接続済」と表示させれいれば、ちゃんとテレビに接続されています。

テスト

さて、ちゃんと動作するか確認しましょう。当然ながらテレビの電源つけておいてくださいね。

トリガのボタンを押す

injectノードの左に付いているボタンを押しましょう!

テレビがパッ!!

テレビちゃんと消えましたか?これで、完了です。

おわりに

今回はNode-redからLG製テレビを操作する最も簡単な「電源を消す」についてやってみました。次回は、テレビのチャンネルを変える事をやって見ようと思います。

ちなみに「電源を消す」のは簡単にできますが「電源をつける」のは、少々面倒です。テレビの電源がついてないと、信号を受け取るwebOS側がついてないので当然ですけどねー。電源をつけるのは「Wake On LAN」を使ってできそうなので、暇があったらやってみます。

連載記事
 1回目:Node-redからテレビの電源を消す 
 2回目:Node-redからテレビのチャンネルを変える ←次はこれ
 3回目:Node-redからYoutubeアプリを起動して動画を再生する
 4回目:スマホからテレビを操作できるようにする
 5回目:Alexaから声でテレビを操作できるようにする
 付録:Wake-On-LANでテレビの電源をつける
 付録:Gravioで子供用プリキュアボタン

関連文書

この記事は以下を参考にさせていただいています。ありがとうございます。

WebOS TV Standard Web API
node-red-contrib-lgtv
npm lgtv2
GoogleHomeからテレビ(LG製WebOS)をコントロールしてみる

記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。

昼間はIT企業に勤めてますが、プライベートでは「育児×家事×IoT」をテーマに家のスマートホーム化に取り組んでいます。Androidアプリも作っているので使って下さい。質問・コメントは、↓のコメント蘭でもFacebookメッセンジャーでもどちらでも大丈夫です。
E-mail:naka.kazz.d@gmail.com

naka-kazzをフォローする
スマートホーム開発者向け
スポンサーリンク
naka-kazzをフォローする
スマートホーム×DIY

コメント