7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dysonの空気清浄機

Last updated at Posted at 2020-09-20

はじめに

ダイソン空気清浄機は、MQTTで情報取得と制御ができます。
情報取得と制御のMQTTパラメータの一覧をまとめておきます。

MQTTシーケンス図

ダイソン空気清浄機の現在の情報は、以下のシーケンス図の(a), (b)で取得できます。
電源のON/OFFなどの制御は、以下の図の(c)で実現できます。
それぞれMQTTのメッセージですが、以下で簡単に内容を記載します。
DysonMQTT.png

ダイソンの空気清浄機からの情報取得

ダイソンの空気清浄機の情報取得は、上記図(a),(b)のように以下の順番でMQTTのメッセージを送信します。それぞれ説明します。

  1. CONNECT送信
  2. SUBSCRIBE送信
  3. PUBLISH送信
  4. PUBLISH受信 (情報受信)

1. 接続 (CONNECT)

MQTTのCONNECTに必要なパラメータは、以下です。
MQTTポート番号は、1883
MQTTバージョンは、4 (3.1.1を示している)

MQTTのユーザ名とパスワードは、「製品SSID」と「製品Wi-Fiパスワード」から生成できます。具体的には、「[pythonでDyson扇風機の操作 やってみた]
(https://qiita.com/ko-p/items/86d1e7807cccda96633d)」等を見てください。

2. 参加 (SUBSCRIBE)

トピックに参加することで、
現在の情報を取得することができます。MQTTのメッセージは、SUBSCRIBEを送信します。
情報取得のために参加するMQTTトピックは、<ProductType>/<Username>/status/currentです。ProductTypeは製品ごとの番号です。具体的には、この記事の最後に載せています。Usernameは、上記の接続(CONNECT)で使ったユーザ名になります。

3. 情報取得要求の送信 (PUBLISH)

ダイソンの空気清浄機から情報をすぐに取得する場合は、以下のメッセージを送信します。、MQTTトピックは、<ProductType>/<Username>/commandです。情報取得要求のメッセージは、2つの種類があります、以下がメッセージ例です。

現在の情報取得 (REQUEST-CURRENT-STATE)

Message: {"msg": "REQUEST-CURRENT-STATE", "time": "2020-08-24T07:27:08Z"}

現在の環境情報取得 (REQUEST-PRODUCT-ENVIRONMENT-CURRENT-SENSOR-DATA)

Message: {"time":"2020-09-17T01:11:30Z","msg":"REQUEST-PRODUCT-ENVIRONMENT-CURRENT-SENSOR-DATA","mode-reason":"LAPP"}

4. 情報取得応答の受信 (PUBLISH)

ダイソンの空気清浄機から、MQTTトピック<ProductType>/<Username>/status/currentに対して、現在の機器の状況が送信されます。メッセージは、以下の3つの種類があります。

情報取得パラメーター (CURRENT-STATE/STATE-CHANGE)

JSONタグ: product-state

JSONタグ 意味
ffoc ディフューズドモード
フォーカスモード
OFF/ON
OFF:ディフューズドモードあり
ON:ディフューズドモードなし
反対なので注意
filf  フィルタ寿命(時間) 0000 - 4300
fmod  ファンモード OFF/ FAN / AUTO
OFF: 電源OFF
FAN: 電源ON
fnsp  風量 0001 - 0010 / AUTO
fnst  ファン状態 OFF/FAN
暖房ONの場合はこの値はOFF
hmax 暖房の設定温度(K) (温度(C)+273)×10
hmod 暖房 OFF/HEAT
hsta  ?
nmod  ナイトモード OFF/ON
oson  首振り OFF/ON
qtar  空気の質 (Air Quality ) 0001(BETTER)
0003(HIGH)
0004(NORMAL)
rhtm  スタンバイモード OFF/ON
ercd  ?
wacd  ?
tilt  ?
ダイソンからのメッセージ例
{"msg":"CURRENT-STATE","time":"2020-09-02T23:10:09.000Z","mode-reason":"LAPP","state-reason":"MODE","dial":"OFF","rssi":"-66","product-state":{"fmod":"OFF","fnst":"OFF","fnsp":"0003","qtar":"0003","oson":"OFF","rhtm":"ON","filf":"1467","ercd":"NONE","nmod":"OFF","wacd":"NONE","hmod":"OFF","hmax":"2932","hsta":"OFF","ffoc":"ON","tilt":"OK"},"scheduler":{"srsc":"691a","dstv":"0000","tzid":"0001"}}
{"msg":"STATE-CHANGE","time":"2020-09-02T23:10:10.000Z","mode-reason":"","state-reason":"MODE","product-state":{"fmod":["OFF","FAN"],"fnst":["OFF","FAN"],"fnsp":["0003","0003"],"qtar":["0003","0003"],"oson":["OFF","OFF"],"rhtm":["ON","ON"],"filf":["1467","1467"],"ercd":["NONE","NONE"],"nmod":["OFF","OFF"],"wacd":["NONE","NONE"],"hmod":["OFF","OFF"],"hmax":["2932","2932"],"hsta":["OFF","OFF"],"ffoc":["ON","ON"],"tilt":["OK","OK"]},"scheduler":{"srsc":"691a","dstv":"0000","tzid":"0001"}}

情報取得パラメーター (ENVIRONMENTAL-CURRENT-SENSOR-DATA)

JSONタグ: data

JSONタグ 意味
hact 湿度 (%) 0000 - 0100
pact ダスト 0000 - 0009
sltm スリープタイマー OFF/ 1 - 9999
tact 温度 (K) 0000 - 5000
vact VOC(揮発性有機化合物) 0001 - 0009
ダイソンからのメッセージ例
{"msg":"ENVIRONMENTAL-CURRENT-SENSOR-DATA","time":"2020-09-02T23:10:15.001Z","data":{"tact":"3004","hact":"0076","pact":"0001","vact":"INIT","sltm":"OFF"}}

ダイソンの空気清浄機の制御

制御のために参加するMQTTトピックは、<ProductType>/<Username>/commandです。ProductTypeは製品ごとの番号です。具体的には、パラメータ(プロダクトタイプ)です。Usernameは、上記の接続(CONNECT)で使ったユーザ名になります。以下は、MQTT PUBLISHのメッセージ例です。

扇風機の制御 (STATE-SET)

{"msg":"STATE-SET","time":"2020-08-21T13:01:23.000Z","data":{"oson":"ON","fmod":"FAN"}}

STATE-SETメッセージ内のJSONタグの意味は、以下になります。

制御パラメータ
JSONタグ 意味 搭載機器
fmod ファンモード OFF/FAN/AUTO 基本
fnsp 風量 0001 - 0010 基本
oson 首振り ON/OFF 基本
nmod ナイトモード ON/OFF 基本
sltm スリープタイマー(分) OFF/[分] 基本
rstf フィルタリセット RSTF 基本
ffoc ディフューズドモード
送風方向
OFF/ON 風向
rhtm スタンバイモード
情報メニュー表示
OFF/ON 情報表示
hmax 暖房の設定温度(K) (温度(C)+273)×10 暖房
hmod 暖房 OFF/HEAT 暖房
? 加湿自動モード ? 加湿
? 加湿設定湿度 ? (30%〜70%) 加湿

製品ごとのプロダクトタイプ番号と機能リスト

製品型番ごとのプロダクトタイプと制御可能な機能リストを以下の表に示す。

プロダクトタイプ 型番 製造番号
(上位3桁)
製品 基本 風向 情報表示 暖房 加湿
276 RB02 ZX7 Dyson 360 Heurist ロボット掃除機 × × × × ×
358 PH01 加湿空気清浄機 ×
   MF01 加湿機(Wi-Fiなし) × × ×
HP00 TJ2
MV2
空気清浄機能付ファンヒーター(Wi-Fiなし) × × ×
HP01 空気清浄機能付ファンヒーター(Wi-Fiなし) × × ×
HP02 空気清浄機能付ファンヒーター × ×
455 HP03 G5V(-IS)
PE4(-IB)
SX2(-IB)
PE5(-WS)
SX3(-WS)
空気清浄機能付ファンヒーター
(IS: アイアン/シルバー, IB: アイアン/ブルー, WS: ホワイト/シルバー)
× ×
527 HP04 ZZ1(-WS)
E4H(-WS)
ZZ2(-IB)
E4J(-IB)
空気清浄機能付ファンヒーター
(WS: ホワイト/シルバー, IB: アイアン/ブルー)
×
DP01 空気清浄機能付テーブルファン × × × ×
469 DP03 SU2 空気清浄機能付テーブルファン × × × ×
520 DP04 空気清浄テーブルファン × ×
TP00 空気清浄機能付ファン(Wi-Fiなし) × × × ×
438(?) TP02 空気清浄機能付タワーファン × × × ×
475 TP03 SR1(-WS)
NK4(-WS)
SR2(-IB)
NK5(-IB)
空気清浄機能付タワーファン
(WS: ホワイト/シルバー, IB: アイアン/ブルー)
× × × ×
TP04 VS1(-WS)
E4E(-WS)
空気清浄タワーファン
(WS: ホワイト)
× ×

参考文献

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?