Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@kitazaki

Node-RED Sonos ノードについて調べてみた。

More than 1 year has passed since last update.

はじめに

こんにちは。野良ハックチーム ざっきー と申します。
この記事は 2019 年 11 月 29 日に開催された「Node-RED UG 勉強会 2019 年末 LT パーティ」で LT 登壇した Node-RED Sonos ノードに関する詳細メモです。

※ LT 登壇資料はこちら

Sonos とは?

米国サンタバーバラ生まれのワイヤレスホームサウンドシステムです。
https://www.sonos.com/ja-jp/home

Wi-Fi (有線接続も可) でネットワークに接続され、自由な組み合わせが可能なスピーカーシステムです。
スクリーンショット 2019-12-12 15.25.12.png

UPnP 対応で API が公開されていますので、ハックすることが可能です。
Sonos Labs
スクリーンショット 2019-12-12 15.25.30.png

Sonos ノードの追加

※ 画面は enebular editor を使用して操作方法の説明をしますが、Node-RED での操作も同様です。

Node-RED の「メニュー」から「パレットの管理」を選択すると「ユーザ設定」画面が表示される。
スクリーンショット 2019-12-14 23.00.41.png
スクリーンショット 2019-12-14 23.01.05.png

「ノードを追加」タブを選択し、検索フォームで「Sonos」と入力して検索するといくつかリストアップされます。

node-red-contrib-sonos

リストアップされた中から「ノードを追加」を選択するとパレットに新しいノードが追加されます。
スクリーンショット 2019-12-15 10.32.36 2.png
スクリーンショット 2019-12-15 10.33.21.png
スクリーンショット 2019-12-15 9.54.34.png
ホームページにサンプルフローが掲載されていますので、ホームページからフローをコピーして Node-RED の「メニュー」→「読み込み」→「クリップボード」に貼り付けてフローを追加します。

スクリーンショット 2019-12-15 10.46.56.png
スクリーンショット 2019-12-15 10.18.49.png
スクリーンショット 2019-12-15 10.48.14.png
スクリーンショット 2019-12-15 10.50.16.png
スクリーンショット 2019-12-15 10.19.29.png
次に Control Sonos ノードの設定を行います。Control Sonos ノードをダブルクリックして「Control ノードを編集」メニューを表示します。
スクリーンショット 2019-12-15 11.28.55 2.png
スクリーンショット 2019-12-15 11.29.28.png
「SONOS Play Node」の編集ボタンを押して Sonos システムの設定を追加します。
スクリーンショット 2019-12-15 11.29.28 2.png
「sonos-config ノードを編集」メニューでネットワークに接続された Sonos システムの IP アドレスを入力して更新ボタンを押します。
スクリーンショット 2019-12-15 14.42.38.png
inject ノードの左側のボタンを押して Sonos を操作します。
スクリーンショット 2019-12-15 14.47.59.png

node-red-contrib-sonos-http-api

まず、node-sonos-http-api を導入する必要があります。コマンドラインで行います。

$ git clone https://github.com/jishi/node-sonos-http-api
$ cd node-sonos-http-api
$ npm install --production
$ npm start

ブラウザから http://localhost:5005 へアクセスして下記の画面が表示されれば正常です。
スクリーンショット 2019-12-15 15.37.05.png
次に Node-RED の「メニュー」から「パレットの管理」→「ノードを追加」タブ→検索フォームで「Sonos」と入力して検索します。リストアップされた中から「ノードを追加」を選択するとパレットに新しいノードが追加されます。
スクリーンショット 2019-12-15 10.32.36 2.png
スクリーンショット 2019-12-15 15.41.14.png
ホームページからサンプルフローをコピーして Node-RED の「メニュー」→「読み込み」→「クリップボード」に貼り付けてフローを追加します。
スクリーンショット 2019-12-15 15.56.42.png
Control Sonos ノードの設定を行います。Control Sonos ノードをダブルクリックして「Control ノードを編集」メニューを表示します。「Sonos Config Node」の編集ボタンを押して Sonos システムの設定を変更します。
スクリーンショット 2019-12-15 15.56.42 2.png
スクリーンショット 2019-12-15 15.57.48 2.png
「sonos-http-api-config ノードを編集」メニューで「「IP Address / hostname of SONOS HTTP Api」項目に http://localhost:5005 を入力して更新ボタンを押します。
スクリーンショット 2019-12-15 16.11.33.png
「Player」項目に「ルーム名」を入力して完了ボタンを押します。
「ルーム名」は node-sonos-http-api のブラウザ表示画面から確認することができます。
「Info」欄の「GET /zones」項目をクリックして「roomName」項目の値を確認します。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f37323437392f37396133346536302d616161332d356639642d396332342d6139393263656264666162342e706e67 2.png
スクリーンショット 2019-12-15 16.00.16.png
スクリーンショット 2019-12-15 15.57.48 3.png
inject ノードの左側のボタンを押して Sonos を操作します。
スクリーンショット 2019-12-15 15.56.42 2.png

まとめ

Sonos One 1 台でも Node-RED Sonos ノードを試すことができますが、2 台を組み合わせてステレオペアとして設定すると高音質な音楽スピーカーに変身します。
音質は然ることながら、拡張性 (1 台〜複数台 )、柔軟性 (組み合わせ自由) に優れ、オープン (UPnP 対応)、ハッカブル (API 公開) な Sonos を是非試してみてください。
Listen Better!
みなさまにも良き音を!

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?