Node-REDからネットワーク経由でBRAVIAの電源をONにする(node-red-contrib-bravia)
はじめに
スマートホーム化でしばしば問題になるのですが、赤外線リモコンのONとOFFが同じボタンという事があります。このようなトグルのスイッチはステータスを管理しなければなりませんが、結構めんどくさいです。
うちのBRAVIAのリモコンも電源はトグルスイッチとなっています。が、安心してください!Node-REDにはBRAVIAをリモコンではなくネットワーク経由で操作する、「node-red-contrib-bravia」があります。
ちょっとクセのあるノードなのですが、今回はこのノードを利用する方法を書きます。
環境
- SONY BRAVIA (KJ-43X8500F) AndroidTV (8.0.0)
- Node-RED v0.20.7
BRAVIA側の設定
「node-red-contrib-bravia」のページに記載されているように設定します。
- 「設定」メニューから、[通信設定]-[ホームネットワーク]-[レンダラー設定]で「レンダラー機能」をONにします。
- 「戻る」を押して、[IPコントロール]-[認証]で「Normal and Pre-Shared Key」に設定します。
- [Pre-Shared Key]で適当な4桁の数字を設定します。
- 「簡易IPコントロール」をONにします。
以上です。
Node-REDのフロー作成
とりあえず、「node-red-contrib-bravia」を、Node-REDの「パレットの管理」から「ノードの追加」をするなりしてください。
使うノードは、devicesにある「bravia ircc」と「bravia api」です。
慣れている方はさくっとフローを作っちゃうと思われますが、このノードはクセのようなものがあり、一度の実行でテレビがONにならない事がよくあります。どうもBRAVIA側が受け取り損なっているような動きに思えます。
そこで、1秒置いて電源の状態を確認し、ONになるまでAPIを発行するフローを作成します。
ノード内のIRCCコードやREST API(メソッド)については以下に情報があるようです。
https://pro-bravia.sony.net/ja/develop/index.html
ノード内のTVの設定をしておきます。「ないしょ」の部分にBRAVIA側で設定した4桁の数字を入力します。
IPアドレスはBRAVIAの「設定」から調べておいてください。
フローの配置は以下のようにします。
書き出したコードは以下です。BRAVIAの設定値は自分の環境に合わせてください。
[{"id":"e6d8cffe.02c36","type":"bravia-ircc","z":"f3171dc9.c79ab","tv":"66988a5d.eb48d4","ircc":"TvPower","name":"","x":950,"y":90,"wires":[]},{"id":"a6316d68.5739a","type":"switch","z":"f3171dc9.c79ab","name":"","property":"payload.status","propertyType":"msg","rules":[{"t":"eq","v":"standby","vt":"str"},{"t":"eq","v":"active","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":620,"y":140,"wires":[["d43b6529.d19468"],["ea75f005.ad29d"]]},{"id":"d43b6529.d19468","type":"delay","z":"f3171dc9.c79ab","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":770,"y":90,"wires":[["e6d8cffe.02c36","e075bca7.6b2ae"]]},{"id":"67eb502c.5ad75","type":"bravia-api","z":"f3171dc9.c79ab","tv":"66988a5d.eb48d4","method":"system:1.0:getPowerStatus","payload":"","name":"","x":480,"y":140,"wires":[["a6316d68.5739a"]]},{"id":"e075bca7.6b2ae","type":"delay","z":"f3171dc9.c79ab","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":330,"y":140,"wires":[["67eb502c.5ad75"]]},{"id":"8cbf71f.a1e4c9","type":"inject","z":"f3171dc9.c79ab","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":140,"wires":[["e075bca7.6b2ae"]]},{"id":"ea75f005.ad29d","type":"debug","z":"f3171dc9.c79ab","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":780,"y":160,"wires":[]},{"id":"66988a5d.eb48d4","type":"bravia-tv","z":"","name":"BRAVIA","host":"111.111.111.111","port":"80","psk":"0000"}]
電源のOFFもIRCCコードを変えるだけで作れます。
BRAVIAには他にも数多くのREST APIがあるので、色々調べて組み合わせると面白そうですね!
スマートホームでは、トグルスイッチを「必ずON/OFFにする」が必要となる場面が多いので、ご参考になれば幸いです。
Author And Source
この問題について(Node-REDからネットワーク経由でBRAVIAの電源をONにする(node-red-contrib-bravia)), 我々は、より多くの情報をここで見つけました https://qiita.com/Y-Shikase/items/38baf02452cfe160731e著者帰属:元の著者の情報は、元の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 .