自室を安価にスマートホーム化(?)させる

Sunday, June 7, 2020
#雑記##IoT#スマートホーム

どうもこんにちは、ねじわさです。
さてはて、オタク IT 知識が豊富の方々はやってる方も多いとは思いますが自室のスマートホーム化をやってみました。単純にロマンがあるのとリモコンを無くしやすいからです。
ところで何を持ってスマートホームと言うんですかね。もし全部 HomeKit とかで管理できるようにならないとスマートホームとは呼べないのなら今回のはもどきです。

条件

次を条件としました。

  • 高校生のお小遣いで揃えられるもの
  • API が(公式, 非公式問わず)提供されているもの
  • 聞いたことある名前の会社 (流石に中華製品ガチャは今回日和りました)

また、今回制御できるようにした物です。

  • エアコン (日立製、リモコンは RAR-1Y5)
  • リモコン付き照明 (アイリスオーヤマ製、リモコンは ML-RU1)
  • デスクライト (リモコンなし、一般的なスイッチのみ)

ちなみに今回かかった費用は ¥ 8,133 でした。高校生のお小遣いで揃えられますがお小遣いが月始めにして蒸発しました。ヤバいですね ☆

買ったもの

Nature Remo mini

みんな大好き Nature Remo ですね。リモコンで使用できる電化製品の制御ができ、アプリ、音声アシスタントの他に公式で API を公開しています。
Nature Remo には無印と mini の二種類があり違いとしては大きさのほかに「湿度、照度、人感センサー」があるかないかどうかの違いだそうですが、 正直いらなそうだなという気がして(今考えると API で湿度とかも分かると面白かったかもしれない)mini を選びました。単純に予算オーバーでもありましたが...

Nature Remo を選んだきっかけとしては単に有名で知っていたというのもあるのですが、私の尊敬するうえちーさんが使っていた ので選びました。

あとうえちーさんが Nature Remo の node ライブラリを作っていたので API 使用も簡単にできました: https://github.com/uetchy/nature-remo

TP-Link スマートプラグ HS105

これはリモコンで使用できない単純な物に使用します。機器自体はいじらずコンセントにさして主電源を管理するやつですね。
まあ tp-link はちょっとよくわかんない会社ですが普通に tp-link のネットワークカード使ってるのでましかなあと...

こちらは公式では API は公開されていませんが、有志の node ライブラリがありました: https://github.com/plasticrake/tplink-smarthome-api, https://github.com/adumont/tplink-cloud-api
ローカルで通信するものとクラウドで通信するものがありましたが、ネットワークの異なるサーバーで動かすため今回はクラウド通信でいきます。

HS105 の注意する点として、プラグが極性付きなので延長タップに入らない可能性があります。
壁のコンセントに直接繋ぐか、極性の穴が空いている延長コードを買わないとだめそうです。私は サンワサプライの 10cm 延長コード を買いました。
丁度レビューで同じくスマートプラグ用に買った人がいるので良かったです。

API で遊んでみる

Nature Remo: 適当なウェブアプリを作っていい感じに制御してみるしようとした

前のように RN で適当なアプリ作ろうと思ったのですが、結局バックエンド稼働させてないといけないし RN 開発って何かと面倒(主観)でまあウェブアプリでもいいかなと... Android なら Web から通知飛ばせるし全然良き。

...ってやろうと思ってたんですがまじでやる気が起きなかったので後述の Discord Bot に全部まとめました...

HS105: Discord の自分のステータスを利用して自動でライトをつけたり消したりしてみる

デスクライトに繋いだスマートプラグをいい感じに制御して自動化させます。今回は Discord の自分のステータスを活用してライトの自動制御をやってみました。

オン/オフの条件としては、

  • PC がオンライン、DND ならオン
  • PC が退席中、オフラインならオフ
  • スマートフォンがオンラインならオフ

また、前述の Nature Remo のリモコンなどいくつかコマンドも作りました。
今回作った Bot のソースコードはこちらです: https://github.com/nzws/my-smart-home

ただし、結構ハードコードしている部分が多くあくまで自分用にしか使えない設計なのでそこまで使い物になりません

まだデスクライトの自動制御の判定に難がありますが、自分がやりたい事は一通り Discord 上でできるようになりました。やったね

また、これを活用して、IFTTT→Discord の連携をする事で結構色々な事を柔軟にできるようにしました。例えば、IFTTT の Button widget を使用してスマホのホーム画面に制御ボタンを設ける事ができます。

内部的には IFTTT が button widget の発火を検出 →IFTTT の webhook が discord の webhook URL にコマンドを投稿するだけで結構単純です。

つかってみたまとめとか

Nature Remo

  • 👍 小さいし思ったよりも安い
  • 👍 端末自体からは音が出ないので特に何も気にならない
  • 👍 "センサーを使って何かアクションを起こす"というのを一切使用していないので本当にスマホからリモコンを使いたいだけって人は mini で十分
  • 👍 公式 API は公式アプリでできる事は多分なんでもできる
  • 🤔 Nature の鯖落ちがあるというのをレビューで見た(まだ経験していない)、基本的に公式アプリ含め全部クラウドを経由するため鯖落ちするとなんもできない
  • 🤔 応答速度が若干気になる時がある
  • 👎 セットアップが大変だった、ネットワークに繋げるのに苦戦し、状態によっては Nature のためにいじらないといけなかったりする
  • 👎 "完全対応した"機器じゃないと柔軟性がなく使いづらい(照明がダメだった)
    • 特に、Google Home との連携がゴミ 別途 IFTTT で何かしら組んだ方が良い
  • 👎 公式アプリがめちゃくちゃもっさりする、マジでアプリ作り直そうかと考えたレベル

HS105

  • 👍 くっそシンプル、コンセントの主電源をリモートで入り切りするだけ
  • 👍 セットアップが簡単だった
  • 👍 もしもの時の物理スイッチがある
  • 👍 公式アプリが普通につかいやすい、まあまあかっこいい
  • 👍 Nature とは違いローカル通信モードがあり、公式アプリは使用可能であれば優先的にローカルでシグナルを飛ばそうとする
    • これの良い点としては、例えば tp-link 側が鯖落ちしてもローカル経由で使える事や、シグナルが飛ぶのがクラウド経由するよりも速く一瞬で切り替えできる
  • 🤔 自分は特に気にならないレベルだが、オンオフ切り替え時にカチッという音がする、気になる人はだめかもしれない
  • 👎 (恐らくアメリカのプラグ...?)前述の通りプラグに極性があり、延長タップが対応していない事が多く別途延長コードが必要
  • 👎 でかい

さいごに

しょうこセンセイ」という漫画がおすすめです、よろしくお願いします。