メディアライフの日記

メディアを活用したライフスタイルの研究・提案に向けて

Nature RemoのテレビプリセットのWeb APIでリモコンアプリ(HTML/CSS/JavaScriptのMonaca)を作ってみた

1.Nature Remo APIコマンドラインから叩いてテレビを操作する

2.Nature Remo APIスマホアプリに設置したボタンから叩く

3.Nature Remoのリモコンボタンを連続して複数回操作する(2019.2.3追記)

4.Nature RemoのテレビプリセットのAPIでリモコンアプリ(HTML/CSS/JavaScriptMonaca)を作ってみた(2019.1.27追記)

 

1.Nature Remo APIコマンドラインから叩いてテレビを操作する

 

NatureRemo の Cloud API を使って Google Home からテレビを HDMI4 に変更する - おともだちティータイム

を参考とした。

 

Nature Remoは購入済みで、純正アプリもインストール済みだったので、まずはこれが動作することを確認した。

 

その後、http://home.nature.global/

にメアドを入力して、トークンを取得。

 

curl -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" "https://api.nature.global/1/users/me"

に貼り付けて実行したら、レスポンスが得られた。

 

curl -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" "https://api.nature.global/1/appliances"

もレスポンスが得られた。

 

ここで、JSONを見やすくするためのjqをインストールした。

 

まずbrewをインストールした。

macOS 用パッケージマネージャー — macOS 用パッケージマネージャー

を参考に、

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

を実行。

 

その後、

環境変数の確認とパスの追加 - Qiita

を参考に、パスを追加。

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

$ source ~/.bash_profile

$ brew doctor

も無事動作。

 

ここで、

Mac に jq コマンドのインストール - メモログ

を参考に、

$ brew install jq
でjqをインストール

Nature Remoの公式APIの使い方 - Qiita

を参考に、

コマンド|jq

としたら、JSONが読みやすくなった。

 

NatureRemo の Cloud API を使って Google Home からテレビを HDMI4 に変更する - おともだちティータイム

に戻り、

curl -X POST "https://api.nature.global/1/signals/550e8400-e29b-41d4-a716-446655440000/send" -H "Authorization: Bearer {YOUR_ACCESS_TOKEN}"

も実行できた。

 

2.Nature Remo APIスマホアプリに設置したボタンから叩く

Monacaでアプリを作った。

jQueryライブラリをインストール。

ajaxからAPIをたたく方法は以下を参考にした。認証ヘッダーも送信可能。

jqueryのajaxから認証用のauthorization bearerヘッダーを送信する - システム開発・構築の神様

 

3.Nature Remoのリモコンボタンを連続して複数回操作する(2019.2.3追記)

setTimeoutで時間差をつけながら実装。

パナソニックのテレビでDlife(BS258)にチャンネルを切り替える場合の例。

 

$('#btn_tvapi_BS258').on('click', function(){
bs();
setTimeout(submenu,1000);
setTimeout(down,2000);
setTimeout(ok,3000);
setTimeout(function(){
ch2();
ch5();
ch8();
},4000)
});
 

4.Nature RemoのテレビプリセットのAPIでリモコンアプリ(HTML/CSS/JavaScriptMonaca)を作ってみた

 

20191.21に下記記事が公開されたので試してみる。

テレビのAPIを公開しました! — Nature

 

Swagger UI

を開く。

 

POST /1/appliances/{appliance}/tv

のことのようだ。

 

Try it outボタンを押す。

 

Appliance ID ID

Button name power

と仮に入力して、Executeボタンを押す

 

以下のcurlコマンドが出た。

curl -X POST "https://api.nature.global/1/appliances/ID/tv" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "button=power"

 

curlコマンドをajaxに変換するのに、以下のサイトを参考にした。

jQuery - curlコマンドをjqueryのajaxで実行する方法|teratail

 

ハイブリッドモバイルアプリ開発環境Monacaでリモコンアプリを作り、ボタンクリックでNature RemoのテレビプリセットのAPIが呼び出せた!

$('#btn_tvapi_power').on('click', function () {
$.ajax({
type: 'POST',
dataType: 'json',
data: 'button=power',
headers: {
'accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
},
beforeSend: function(xhr, settings) {
xhr.setRequestHeader('Authorization', 'Bearer MYTOKEN')
}
}).done(function(data) {
console.log(data);
}).fail(function() {
console.log('bad');
});
});

 

謝辞

参考にさせていただいたサイトの皆様、ありがとうございました。