【スマートホーム】Dyson Pure Cool LinkをHomeKitやGoogle Homeに対応させる

2018年7月8日Home AssistantHome Assistant,スマートホーム,Dyson,Google Assistant,Home Kit,IoT

 

Dyson Pure Cook Linkに限らずDyson Linkに対応している製品であれば、Home Assistantを経由することでIFTTTやIRKit等に頼らなくともSiriやGoogle Assistantに対応させることが出来る。ということで、Home Assistantを経由した実施の方法を紹介。

なお、Alexa(Amazon Echo)には標準で対応しているので、そちらを使うのが簡単かも(私は、Home Assistantに全てを一元集約しているので、Alexaを使用しているのだが本方法を用いた)。なお、今回はPure Cool Linkを使っているが、Pure Hot + Cool Linkでも可能。

nmapを用いてDyson Pure Cool Linkが使用しているIPアドレスを特定する

Dyson Link対応商品は、1883ポートを使用している。従って、1883ポートが開いているデバイスをnmapを用いて探してあげる。

nmap -p 1883192.168.11.1/24 --open

Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-17 02:37 JST
Nmap scan report for192.168.11.104
Host is up (0.0029s latency).
PORT     STATE SERVICE
1883/tcp open  unknown

どうやら、自宅の環境では「192.168.11.104」がDyson Pure Cool Linkっぽい。
ルーターの設定を利用して、固定してしまうのがよさそうだ。

デバイスの製造番号を確認する

設定を行うにあたり、IPアドレスだけではなくデバイスの製造番号が必要となる。
これは、スマホアプリの設定画面(アプリの右にある歯車アイコン)から「空気清浄機能付製品の設定」を選択することで確認出来る。

まず、アプリの歯車アイコンを押す。

dyson-link-1-w562

次に、「空気清浄機能付製品の設定」を押す。
dyson-link-2-w562

そうすると、製品番号が登場。控えておこう。

dyson-link-3-w562

configuration.yamlにDysonを追加する

必要となるのは、 Dyson Linkのユーザー名とパスワード、使用している言語とデバイスの製造番号、そして今確認したIPアドレス。

次のような形で、configuration.yamlに設定を加える。

dyson:  username:ID(メアド)  password:パスワード  language:JP  devices:    - device_id:製造番号      device_ip:IPアドレス

これで設定は完了。一度Home Assistnatを再起動する。

DysonからHome Assistantに連携される情報

端末(Dyson Pure Cool Link)の動作情報のほか、内蔵されているセンサー類も取得が可能。

端末(Dyson Pure Cool Link)の動作

dyson-coollink-w675

こんな形で登場。スピードや回転の有無なども表示されている。

センサー

Pure Cool Linkは、アプリ上では空気質(AQI)・温度・湿度の取得が可能。Home Assistantでは、これらに加えてフィルターの寿命と汚れ具合を取得することが出来る。
(実は、Air QualityとDustの違いは良く分からない…使用した感じだと、おそらくpure_cool_link_dustのほうがAQI)

dyson-senso-w724

## 画面上から操作をする

画面では、オン・オフのスイッチと、回転するかどうか、及びファンのスピードコントロールを行うことが出来る。

次のような形で、単純なオンオフが出来るようになり、

pure-cool-2-w381

こんな形で詳細をコントロール可能。

pure-cool-3-w346

HomeBridgeに連携をして、HomeKit/Siriから操作をする

Hass.Ioを用いていれば、アドオンとしてHomeBridgeをインストールしておけば、アドオンの再起動をするだけでHomekitから見えるようになる。

ただし、センサーだけはAQIであることを明示する必要がある。
次のような形でcustomize.yamlに記入してあげれば、AQI(空気質)として表示可能。

sensor.Pure_Cool_Link_dust:   friendly_name:"屋内空気質"   homebridge_sensor_type:air_quality   unit_of_measurement:aqi   icon:mdi:factory

必要なのは、unit_of_measurementをaqiにすることと、homebridge_sensor_typeをair_qualityにしてあげること。

また、デフォルトではfanがHomeBridgeに反映されないようになっているので、homebridgeフォルダのconfig.jsonに以下を加筆する。

"supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],

最初、上記を管理画面上から行ったのだが、うまく反映されなかった。どうやらファイルを直接いじる必要があるようだ。

次の通り、きちんと今回のファンとセンサーが表示された。

fan-contro-w562

ファンは、レバーを使うことで風量をコントロールすることが出来る。しかし、残念ながら「首振り」への対応は出来ないようだ。

fan-senso-w562

AQIは文字で示してくれる。なんか、10段階で示しているくさく、AQIではないような気もしているのだが、もしそうであれば補正を加えることにしよう。

Google Assistantへ対応する

Home AssistantとGoogle Asisstantの連携は、テストアプリを用いることで実現している(この方法は、別途記載したい)。

上記を行っていれば、自動的に下記の通り今回追加したファンが登録される。ただし、風速の変更には対応していないようだ。

google-assistant-config-w562

テストアプリに今回設定した「扇風機」が出現し…

google-assistant-con-w562

会話もきちんと出来る。

Alexa / Amazon Echoへと対応する

別に最初からDyson Smart Linkとして連携しても良いのだが、全てをHome Assistantに集約しているので、せっかくなのでHome Assistant経由で連携。

これも、テストアプリとして実現をしているのだが、その方法は別途記載したい。また、これも風速の変更には対応していないようだ……そこまでやる場合は、Dysonの公式スキルを使った方がよさそう。

alexa-w562

これも、デバイスの追加をすると「扇風機」が出現するようになり、

alexa-conv-w301

会話を行うことが出来る。

スマートホームの実現にあたっては様々なソリューションを使う形となるが、何かを追加したときにいちいちGoogle AssistantやHomekit、Amazon Echo(Alexa)の設定を変更するのは非常に面倒だ。
また、そもそもHomeKitに至っては対応している端末がほとんどない。

そのようななかで、日本ではほとんど話題にはなっていないが、全ての機能をHome Assistantに集約すること、管理が非常に容易となる。また、Google AssistantやHomekit、Amazon Echoとの連携もそこそこ簡単に行うことが出来る。
今回はDysonの端末で試してみたが、今後その他の製品を購入した際にも試していくこととしたい。
なお、本ブログで紹介しているHome Asisstantの記事は、こちらのカテゴリから確認することが可能。

Posted by webnetforce