Stream deckとSwitchbot APIを使ってHDMIセレクタを操作できるようにする話

スポンサーリンク

やること

私の環境ではスピーカーとヘッドホンがFocusriteのミキサーに繋がっていて、HDMIセレクタに繋がっているゲーム機とPCの音声をミックスさせて動かしているのですが、

スピーカーとヘッドホンを個別でミュートするにはFocusrite Controlというアプリ上で操作を行わなければならずワンボタンで操作できなかったのでStream deckから物理的にスピーカーの電源を切れるようにします。

欲を言えばヘッドホンもミュート操作したかったのですが、ヘッドホンアンプでミュートできなかったので今回は我慢。

ショートカットキーとかあればこんなことしなくてもマクロでどうにでもなったのですが、Focusriteのサポートに聞いたら個別にミュートするためのショートカットは実装してないよって言われた。

f:id:overwhelminggrowth:20211114194804p:plain

要約: 個別ミュートするショートカットないのでリクエストとして記録するね

 

あとはHDMIセレクタにゲーム機を色々繋いでいるのでリモコンで切り替え操作を行なったりするのですが、いちいちリモコンを探すのが面倒くさいという悩みがありました。

なのでHDMIセレクタの切替もStream  deckで操作できるようにします。

 

今回使用するもの

PS5,PS4,Nintendo Switch,PCを接続して切り替えて使える有能なセレクタ

別にこれじゃなくても赤外線リモコンで操作できるなら何でもよい。

あらゆる赤外線リモコンを模倣する神

リモコンついてないデバイスのスイッチを物理的に押してくれる神

好きな画像をボタンに表示できてAPIとかも投げられる最強デバイス

赤外線を反射させてSwitchbotの動作範囲を広げるために使う鏡

 

設置

照明など操作したいデバイスがHDMIセレクタ以外にもあったのでSwitchbotの配置場所に悩んだのですが、小さい鏡を使って反射させたら無理のない場所に置けました。

f:id:overwhelminggrowth:20211114171526p:plain

反射を利用したリモコン操作

こちらはスピーカーに取り付けるSwitchBotですが、高さと位置がぴったりでした。

ONKYOのロゴが隠れるけどまあヨシ。

SwitchBotの押し込みパワーが強いのでボタンが壊れないかちょっと心配。

粘着シートが剥がれてしまうので取り付けてから24時間は動かさずそのままで放置します。

f:id:overwhelminggrowth:20211114181448p:plain

GX-500HDにSwitchBot取り付け

 

Switchbotにリモコン登録

手順をまとめましたがそこまで難しくないし長いので読みたければ読んでください。

「その他」でHDMIセレクタをこんな感じに登録します。

f:id:overwhelminggrowth:20211114201028p:plain

Switchbotに記憶させたHDMIセレクタの信号

 

▼クリックして展開▼

Hub miniをSwitchbotアプリで認識させたらリモコン追加をします。

f:id:overwhelminggrowth:20211114192313p:plain

リモコンを追加

リストにあればそれ押せばいいですが、無いので「その他」を押します。

f:id:overwhelminggrowth:20211114192605p:plain

家電を選択

注意事項が出るのでスライドさせて全部読むと次へが押せるようになります。

f:id:overwhelminggrowth:20211114192705p:plain

注意事項

デバイス名を決めて保存します。分かれば適当でいいです。

f:id:overwhelminggrowth:20211114192757p:plain

デバイス名をきめる

今すぐ使うを押します。

f:id:overwhelminggrowth:20211114192832p:plain

今すぐつかう

OKを押す

f:id:overwhelminggrowth:20211114192908p:plain

OK

右上のペンアイコンを押す

f:id:overwhelminggrowth:20211114193239p:plain

ペンアイコンを押す

+ボタンを押す

f:id:overwhelminggrowth:20211114193326p:plain

+ボタンを押す

リモコンをSwitchbotに向けて記憶させたいボタンを押す

f:id:overwhelminggrowth:20211114193437p:plain

リモコンボタンを押す

手のアイコンを押して信号が正しいか確認する

f:id:overwhelminggrowth:20211114194037p:plain

手のアイコンを押す

ボタン名を決める。この名前はStream deckで操作するときに使います。

f:id:overwhelminggrowth:20211114194156p:plain

ボタン名をきめる

これで完成。

f:id:overwhelminggrowth:20211114194228p:plain

完成

Stream deckで使用するコマンド

SwitchBotの操作でスピーカーONOFFするのは前の記事と同じようにcommandで"turnOff"の代わりに"press"を指定するだけですが、「その他」で登録したデバイスをAPIで操作するには投げたいコマンド名と一緒にコマンドタイプを指定してあげる必要があります。

 

POSTMANで使いたいデバイスのdevice IDを調べて、Stream deckのAPI ninjaを使ってSwitchbotにAPIを投げます。(やり方は前の記事参照)

API URLの黄色部分は自分が使用しているdevice IDに置き換えてください。

項目 入力値
Request Type POST
API URL https://api.switch-bot.com/v1.0/devices/00-00000000000-91/commands
Content Type application/json
Header Authorization:"Switchbotのアプリでコピーした英数字の羅列(ダブルコーテーション抜きで)"
Data {"command": "1","commandType": "customize"}

commandで指定するのは「その他」に登録したボタンの名前です。

"2"って名前で登録したボタンを押したい場合はこんな記載になります。

{"command": "2","commandType": "customize"}

 

あとはHDMI1~4までコピペで作ってアイコン設定すれば完成。

登録した結果がこれ。HDMIセレクタの数字とゲーム機を頭の中で紐付けなくて良くなったので直感的に操作しやすくなった。

f:id:overwhelminggrowth:20211114190131p:plain

登録後のStream deck

 

以上

圧倒的成長。