はじめに
ネットワーク越しに電源のON OFFをする方法として、スマートコンセント、スマートプラグなるものが世の中にはありまして、外出先で iPhoneやAndroid のスマフォからオン/オフ 操作できます。またこちら、スマートスピーカー、Google Home や Amazon Echo でも操作できる優れものなんです。
Belkin WeMo 家庭用電源リモートスイッチ for Apple iPhone, iPad, and iPod touch
- 出版社/メーカー: va01
- メディア: エレクトロニクス
- クリック: 22回
- この商品を含むブログを見る
だけどですね、今回これを購入した一番の理由は、「Linuxからの操作の技術情報が簡単に手に入る」これに付きます。ですので、設定の説明の後は、今回 Raspberry Pi から 操作の実例を書いてきます。
自前でスケジューリング機能や、IFTTTとの連携機能を持ってるんですが、Raspberry Pi から操作出来て何が楽しいのかというと、家庭内サーバからも制御できるし、インターネット接続が落ちていても機能します。Jenkinsでスケジュールしてオンオフできます。
例えば、我が家、安物の加湿をRaspberryPi の 湿度計と連動させて湿度を測定して停止させれます(神の声:素直に高い加湿機、買えよw)。
もう一つ期待している用途が、我が家のNASがハングアップしがちなので、検出すれば自動で再起動とか(神の声:それよりNAS買いなおそうか?)。
まぁ我が家だと赤外線リモコンをRaspberryPiに取り付けて loT 化しているので、こうすると 家電の電源スケジュールや外部からの操作を Blynk や Jenkins に 一元化 できるんですよ(これが本音)。
ちなみに、コンセントが 3pin なので 2pin への変換が1個必要です。(3ピンメスに2ピンオスは刺して利用できるので)
以下のアジェンダ
・開封の儀
・通常設定
・幕間(好ましい事前設定と参照元)
・WeMoのIPアドレスを調べる
・RaspberryPiから制御のために
・ちょっとした使用感
開封の儀
外箱はこんな感じです。開封したところ、実物のみが梱包されており、内容物に紙による説明書はありませんでした。
裏ブタにカラー印刷されている英語のQuick Install Guide も アプリダウンロードしてね っとだけです。
縦幅、10cm と 意外とデカイです。
通常設定
ちなみに。スマフォが無いと初期設定できません。ネットの実例では、iPhoneばかりなのですが、Google Play にもWeMo のアプリはありますので、Anrdoid ユーザーでも利用できます。
手順は以下の通り、
1.スマフォにWeMoのアプリをインストール
2.WeMoをコンセントに接続
3.スマフォのWiFi接続先一覧に「WeMo.xxxx.nn」
(自分の製品の場合は「WeMo.Switch.409」と出ました) と出るので接続。
4.スマフォのWeMoアプリを利用して指示に従う。
設定する内容は、WeMo自体の家庭のWiFiネットワークへの接続です。
この際、連絡用のメールアドレスの入力を求められました。
注.製品背面(3ピンオスが突起している面」にWiFi ID と Mac アドレスを書いたシールが貼ってあります。ルーターでMACアドレス・フィルタリングしているならこちらの情報が必要ですよね。
幕間
好ましい事前設定
まぁお察しの通り、WeMo 君、DHCPでIP割り当てを受けるので、IPが変わる可能性があります。先ほどのMACアドレスを使って、ルータでDHCP固定割り当て、つまり、特定のMACアドレスに決まったIPアドレスを割り振る設定しておくといいです。
参考にしたページ
以下の内容の多くは下記リンク先の記事を参考にしました。
N@i.jp 「WeMoをWebからオン/オフできるようにしてみた」
WeMoのIPアドレスを調べる
方法1
prompt > arp -a
これを実行すると、IPとMACアドレスが対になった一覧が出ます。
? (192.168.x.x) at xx:xx:xx:xx:xx:xx [ether] on br0 ? (192.168.x.x) at xx:xx:xx:xx:xx:xx [ether] on br0 ? (192.168.x.x) at xx:xx:xx:xx:xx:xx [ether] on br0
*)こういった情報が接続中のネットワーク機器分出力されます。atの右にMACアドレスが表示されます。
覚えのない IPアドレス、あるいは、先ほど調べた本体背面シールにある、MACアドレスと対になったIPアドレスを探せば今回導入したIPアドレスが分ります。
方法2
N@i.jp さんの記事からリンクのある以下記事のSearchRootDevice.py をを利用します。
「UPnPのNAT越えについて調べてみた - いろいろな何か」
ローカルネットワークにある機器分の以下みたいな情報が帰ります。
下は我が家のWeMoです。
========================================
from ('192.168.x.x', 3075)
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=86400
DATE: Sun, 11 Feb 2018 09:52:38 GMT
EXT:
LOCATION: http://192.168.x.x:49153/setup.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 53f43dfc-1dd2-11b2-87e9-f47cd3e9c342
SERVER: Unspecified, UPnP/1.0, Unspecified
X-User-Agent: redsonic
ST: upnp:rootdevice
USN: uuid:Socket-1_0-221612K0103409::upnp:rootdevice ========================================
WeMoのポートは「49153~49155」らしいので、こいつで決まりなんです。が・・・。
プロンプト > curl -s http://192.168.xx.xx:49153/setup.xml
これで返る情報で本来判断するもののようです。取得して返るxmlの中には、メーカーである「Belkin」の文字と、設定の時WeMoに付けた名前が含まれます。
RaspberryPiから制御のために
IPアドレスが分ればあとは次は制御用のスクリプトを拾って来ましょう。これも「N@i.jp 」さんの所で紹介されているのですが、生憎リンク切れでした。ですがGitHub上で公開されていましたので、リンク張っておきます。
「bash/wemo_control.sh at master · mississaugalug/bash · GitHub」
このスクリプトに IPと その後に on/off/getstate の引数を 渡して実行で制御できます。
プロンプト > wemo_control.sh 192:168.x.x on
(返り値) ON プロンプト > wemo_control.sh 192:168.x.x off
(返り値) OFF プロンプト > wemo_control.sh 192:168.x.x getstate
(返り値) ON or OFF
ちょっとした使用感
WeMoのこのモデルの使用感としてはオンオフ切り替えで小さめながら、はっきり音が聞こえる事でしょうか。就寝中にちょっとした物音で目を覚ます方は気になるかもしれません。
Belkin WeMo 家庭用電源リモートスイッチ for Apple iPhone, iPad, and iPod touch
- 出版社/メーカー: va01
- メディア: エレクトロニクス
- クリック: 22回
- この商品を含むブログを見る