DEOS Tech note

人とモノの物語が、”つくる”の源

U-ZO

Switchbot をカスタム ー クラウドを経由しないで操作できるようにする ー (2)概要を整理する

※この連載記事の読者は、ある程度のIT技術系のリテラシーを持たれていることを前提にしていますので、専門用語は普通に使っていきます。

※この記事は「連載記事」です。

 今回カスタムするSwitchbotを使う環境を整理します。
 元々、仕事の関係から東京の拠点、外部のデータセンター、遠方の実家等をIPSec-VPNでつないだセキュアな運用環境を既に構築してあります。この環境化ではセキュリティの事情から、外部ネットワークとの接続は避けたい。一方で、Switchbotのメーカー提供クラウドとの通信を切り離して運用することは可能です。しかし、視点を変えると、せっかく構築してあるセキュア環境を活用したホームIotを組んだほうが、今後の拡張を考えてもベターと考えました。

Switchbot open source SDKを使って、公式クラウドを使わない操作をする

  SwitchBot opensource project – python-host

 僕が、物理ボタンの遠隔操作のためにSwitchbotを選んだ理由は、SDKが存在することです。APIではなく、このSDKを使えば、Switchbotが提供する公式クラウドへの接続を行わずに、ローカル・セグメントで遠隔操作が行なえます。

 このSDKはRaspberry pi OSまたはOpenWrt OSをホストとして、pythonコードでスクリプトを組むために用意されており、Switchbotの制御用ゲートウェイ・デバイスとして公式で販売されているSwitchbot Hubを使わずに、Raspberry piをゲートウェイ・デバイスとしてシステムを組むことができます。
 つまり、ゲートウェイ・デバイスとなるのRaspberry piに、遠隔操作用のサーバー機能または信号中継機能を構築すれば、想定している「公式クラウドを使わない遠隔操作」が可能になります。

※ただし、Switchbotが公式クラウドとAppで提供している他のクライアント機能は使えません。「Switchbotの操作、設置されているSwitchbotの検索」のみがSDKで提供されています。Open Sourceなのでソースをほじくれば、出来ることがまだあるかもしれませんが、気になる方は、ほじくってください笑。

概要図をまとめる

 ここまでのところ、Switchbotを直接制御するRaspberry piは、VPN網を経由して遠隔操作するスマートフォン等と接続されることが決まりました。また、SwitchbotはBluetoothでRaspberry piと接続されるため、お互いの距離を考えると同じ部屋に置かれることが想定されます。
 さて、全体像をつかむために、「(1)カスタムした理由」の概要図を更新してみます。この工程は大事ですよね。ここで気がつくことって少なくない。

 この図でわかるように、Raspberry piがゲートウェイ・デバイスになるということは、遠隔から人がスマートフォンで適宜操作するだけではなく、独自のスケジューラやシステムとの連携が自由に行えるようになります。元々SwitchbotはAPIを公開しているため、ある程度の自由なシステムを組むことができますが、遠隔制御用のネットワーク・セグメントがSwitchbot公式クラウドから独立するということからも、その自由度が全然違います。

応用ケースを想定して、開発する機能を「モジュール化」しておく

 既に構築してあるVPN網を使ったSwitchbotのカスタムですが、今回開発することで「これは使えるぜ!」という素敵な結果が出た場合には、VPNが整備されていない等の他の環境にも、できる限り労が少なく応用できるようにしておきたいです。

 今回はSwitchbotの操作だけというシンプルな機能ですが、他の機能も同様に、次の図のようにデータフォーマット(通信プロトコル)の作成とバッチ化されたスクリプト群から構成されるモジュールとして開発することで、考え得る様々なケースに対応できるようにします。

 今はクラウドを代表とするプラットフォーム全盛期ですが、その際の応用ケースの想定では、プロトコルの設定のみに着目されるケースを散見します。でも、プロトコルってサービスが異なれば全然違う。「JSONでまとめているので対応してね!」がお決まりのパターンです。つまり、一番大事なのは「どんなプロトコルにも対応できるモジュール=バッチ化」が一番シンプルで、かつ大切なポイントだと経験から実感しています。

※連載記事「使われるIoTをつくる」では、「WebSocketを活用した、リモートコントロール・クラウドの開発」を紹介します。(執筆中)

前へ Switchbot をカスタム ー クラウドを経由しないで操作できるようにする (1)カスタムした理由

「次へ Switchbot をカスタム ー クラウドを経由しないで操作できるようにする (3)つくるー動かす」

投稿者

ご取材、お仕事等のご依頼やご相談は、こちらからお気軽にお問い合わせください


最新の記事



Copyright© U-ZO co,.ltd. & Yuzo Koga