中華スマート電球(MagicHome/Magichue)を買った

スマート電球が欲しい。スマート電球っていうのはスマホとかでオン・オフしたり調光したりできる電球です。どうでもいいですがスマート家電のスマートって何がスマートなんでしょうね?

早速色々ググってみるとスマート電球といえばPhilips Hueが圧倒的に有名らしい。ふむふむ。。。

Philips Hue(ヒュー)スターターセットv3 スマートLEDライト 【Amazon Alexa、Google Home、Apple HomeKit、LINE対応】

Philips Hue(ヒュー)スターターセットv3 スマートLEDライト 【Amazon Alexa、Google Home、Apple HomeKit、LINE対応】

。。。。高っっか、普通に高くない? (追記) ↑のはハブ+電球3つセットの価格だそうです。ただハブと電球1つでも14000円はするんですね。

その後適当にアマゾンを探索してるとこんなのを発見。Magic Hueというらしい。

調光・調色で3000円!やすい!即購入!

即購入は嘘です。結構悩みました。

開封

どん f:id:pu2x:20180517165741j:plain 見るからに中華な箱。電球は割と普通の見た目。

専用のアプリをインストールして適当にWifiの設定を済ます。ここらへんは他のブログにも書いてあるので省略。Wifiは2.4GHzしか対応してないので注意。

IMG_0039 from au s on Vimeo.

で、とりあえずアプリから色々いじってみる。反応は十分速いですねー。60W相当って書いてあったんだけど明らかにそれよりも暗い、80W相当のやつにしとけばよかった。 色変えられると楽しいかなーって思ったけど多分使わないっすねこれは。。。

PythonでMagic Hueの非公開APIを叩く

そもそも俺がなぜスマート電球を買ったかというと、自作のスマートロックと連動させて電気を付けたり消したりしたいわけですよ。だから専用アプリからしか操作できません(笑)とかだったら困るんですね。PhilipsHueならユーザーも多いし公式のAPIも使える(多分)んだけどこの怪しい中華電球で同じことができるかというと謎。 とりあえず公式アプリの通信を見てみた。 MacユーザーでかつiPhoneユーザーならUSBでマックと繋いだ後

$ rvictl -s <UDID>

iPhoneMacに仮想インターフェイスとして割り当てられるのでWiresharkで通信をキャプチャできるぜ。UDIDはiTunes見れば分かるよ。 Androidユーザは知らね。 この状態でWiresharkを起動してアプリから操作すると、 f:id:pu2x:20180517171022p:plain お、これか?

とりあえず出てきたパケットをPythonで送信。

import socket
import struct


dst_ip = '192.168.0.23'
dst_port = 5577

s = struct.Struct('!BBBB')
on_data = s.pack(*[0x71, 0x23, 0x0f, 0xa3])


sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((dst_ip, dst_port))
sock.send(on_data)
response = sock.recv(4)
print(response)

すると、

IMG_0042 from au s on Vimeo.

やったぜ。

この調子で一つ一つ見ていけば調光・調色もイジれそうですね〜