SHARPのブルーレイレコーダー「AQUOS UT2200」を、Home Assistant(HAOS)からネットワーク経由で操作する方法を検証したのでまとめます。
背景
最近のレコーダーはスマホアプリ等で操作可能ですが、HAOSに組み込むことで他の家電と連携したオートメーションが可能になります。今回は「IPコントロール」機能を使い、Node-RED経由でTCPコマンドを送信して制御します。
機器設定
まずはレコーダー側の設定が必要です。
IPコントロール: 「する」に設定。
ログインID/パスワード: 今回は「空(未設定)」で検証。
IPアドレス: 固定IPを推奨。
ポート番号: 初期値 10002。
接続テスト
WindowsのPowerShellでポートが開いているか確認します。
| powershell |
Test-NetConnection 192.168.0.43 -Port 10002
|
TcpTestSucceeded : True が出れば準備完了です。
最大の難関:対話型認証の突破
AQUOSのIPコントロールは、接続直後にレコーダー側から「Login:」「Password:」と問いかけられる対話型プロトコルです。コマンドを一気に送っても無視されるため、Node-REDで「待ち時間」を作りながら順次送信する必要があります。
Node-REDでの実装
FunctionノードでID(改行のみ)、パスワード(改行のみ)、コマンドの順にディレイを入れて送信します。
| javascript |
// IDの代わりの改行、パスワードの代わりの改行、そしてコマンド
const id = "\r";
const pw = "\r";
const cmd = "POWR1 \r"; // 電源ON(8文字固定+改行)
// 順番に送り出す
node.send({payload: id});
setTimeout(() => {
node.send({payload: pw});
}, 300); // 0.3秒後にPW送信
setTimeout(() => {
node.send({payload: cmd});
}, 600); // 0.6秒後に操作コマンド送信
return null;
このメッセージを TCP Request ノードに渡します。
Close connection: after a fixed timeout (1500ms程度) に設定。
これで、デバッグログに Login:Password:OK と返ってくれば、無事に電源操作が成功します。
現在の課題
電源状態を確認する POWR???? コマンドを投げても、現状 OK しか返ってこないため、双方向の同期には工夫が必要です。
クイック起動がONだと待機中もポートが閉じないため、今後はスマートプラグによる電力検知などを組み合わせる予定です。