はじめに
この記事の目的
Node-REDを使い、HTTP APIを使ってローカルのYAMAHA MusicCastデバイスのデバイス情報を取得できたことの記録になります。
事前準備
- MusicCast対応機器(今回はRX-A2A)
- Node-RED
- スマホアプリ「MusicCast Controller」をインストール
MusicCast DeviceのIPアドレスを調べる
今回はYAMAHAのAVレシーバ RX-A2A を使っていきます、スマホアプリ「MusicCast Controller」をインストールして、付属の説明書通りで、AVレシーバの「Connect」ボタンを5秒長押しして、スマホとペアリングします。
ペアリングができたら、アプリでデバイスの情報を確認することができ、IPアドレスを特定します。
今回は192.168.1.133になる。
Node-REDでデバイス情報を取得する
こちらはMusicCastで使えるHTTP APIの説明書になります:https://wiki.elvis.science/images/0/04/Yamaha_MusicCast_HTTP_simplified_API_for_ControlSystems.pdf
いろんなことができそうですが、今回はGet Device infoでデバイス情報をNode-REDで読み取れるようにしました。
Node-REDのフローをインポート
右上の3本線をクリックして、読み込みをクリックします

以下のフローをコピーして、クリップボードに貼り付け、読み込みボタンをクリックします
[{"id":"5a0c317db781fd18","type":"tab","label":"フロー 1","disabled":false,"info":"","env":[]},{"id":"0fee92af1e3751bb","type":"inject","z":"5a0c317db781fd18","name":"make request","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","payload":"","payloadType":"date","x":250,"y":260,"wires":[["c3766e8f0e4df63a"]]},{"id":"c3766e8f0e4df63a","type":"http request","z":"5a0c317db781fd18","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://192.168.1.133/YamahaExtendedControl/v1/system/getDeviceInfo","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":550,"y":260,"wires":[["09be51d74e818f5a"]]},{"id":"09be51d74e818f5a","type":"debug","z":"5a0c317db781fd18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":830,"y":260,"wires":[]}]

これでノードのフローをインポートすることができました
http requestのノードをクリックします

URLの青い部分を自分のデバイスのIPアドレスに変えて、完了を押します

デプロイをクリックして、make requestの左部分のブロックをクリックすると、、、

デバイスの情報を取得できましたね!
