Help us understand the problem. What is going on with this article?

Sonos で Lチカ してみた。

はじめに

電子工作のはじめの一歩と言えば「Lチカ」ですね。
ワイヤレススピーカーシステム Sonos でも「Lチカ」を試すことができます。
Sonos One にはステータスライトがついており、このステータスライトの色や点滅で状態を確認することができます。(白色点灯状態が正常です)

ただ、夜中暗い中でステータスライトが点灯していると眩しいことがあるので、Sonos アプリからステータスライトを OFF にすることができます。
Sonos_App.jpeg

プログラムから LED を操作する

Sonos は API が公開されていますので、プログラムから LED を操作することが可能です。

  • getLEDState() →現在の LED の状態を取得します
  • setLEDState(desiredState) → LED の状態を変更します

JavaScript (node.js) の node-sonos モジュールを使用してスクリプトで LED を操作してみました。

インストール

node のバージョンを確認します。(nodebrew で node のバージョン管理を行っています。)

$ nodebrew list
v6.14.1
v8.14.0
v9.11.2
v12.14.1

current: v12.14.1
$ node -v
v12.14.1

node-sonos をインストールします。

$ npm install sonos

スクリプトの実行

Sonos の LED のステータスを確認して、On なら Off へ、Off なら On へ変更するスクリプトです。

$ node setLEDState.js 
Got current LED state "Off"
Success LED: Off->On
$ node setLEDState.js 
Got current LED state "On"
Success LED: On->Off
setLEDState.js
const Sonos = require('sonos').Sonos
const sonos = new Sonos(process.env.SONOS_HOST || '192.168.13.4', process.env.SONOS_PORT || 1400)

sonos.getLEDState().then(state => {
  console.log('Got current LED state %j', state)
  if (state == "On") {
    sonos.setLEDState("Off").then(state => {
      console.log('Success LED: On->Off')
    }).catch(err => { console.log('Error occurred %j', err) })
  }
  if (state == "Off") {
    sonos.setLEDState("On").then(state => {
      console.log('Success LED: Off->On')
    }).catch(err => { console.log('Error occurred %j', err) })
  }
}).catch(err => { console.log('Error occurred %j', err) })

SONOS Japan User Group に他の記事もあるので参考になります。

iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした