【Python】Dyson空気清浄扇風ヒーターの操作と室温、湿度などの取得
pythonでHP03の操作とセンサーデータを取得するサンプルも自分用に作成したので、備忘録としてコード乗っけときます。参考サイトの内容をほぼ流用してます。
家電のセットアップは下記の記事を参考にしてください。
パスワードなどの取得は私が参考にしたサイトを参考にすると良いかもです。
今回のテストコードはpaho-mqttを使用します。
https://github.com/eclipse/paho.mqtt.python
pipコマンドなら
pip install paho-mqtt
テストコード
# coding: UTF-8
import paho.mqtt.client as mqtt
import time
import threading
HOST = 'IP Address'
PORT = 1883
USERNAME = 'user name'
PASSWORD = 'password'
MODEL = '455'
# Dyson setting get request
def on_connect(client, userdata, flags, respons_code):
print('status : ' + str(respons_code))
topic = MODEL + '/' + USERNAME + '/status/current'
client.subscribe(topic)
# current Dyson setting receive
def on_message(client, userdata, msg):
print('-----' + msg.topic + '-----')
print(msg.payload)
# Dyson control function
def control():
topic = MODEL + '/' + USERNAME + '/command'
#Dyson Start
PAYLOAD = '{"msg":"STATE-SET","time":"2020-06-11T19:55:44Z","data":{"fmod":"FAN","fnsp":"0001"}}'
client.publish(topic, PAYLOAD)
#wait 10 second
time.sleep(10)
#Dyson Stop
PAYLOAD = '{"msg":"STATE-SET","time":"2020-06-11T19:55:44Z","data":{"fmod":"OFF"}}'
client.publish(topic, PAYLOAD)
if __name__ == '__main__':
#connect
client = mqtt.Client(protocol=mqtt.MQTTv311)
client.username_pw_set(USERNAME, PASSWORD)
client.on_connect = on_connect
client.on_message = on_message
client.connect(HOST, port=PORT, keepalive=60)
#Dyson Fan operation with another thread
t1 = threading.Thread(target=control)
t1.start()
client.loop_forever()
{“msg”:”ENVIRONMENTAL-CURRENT-SENSOR-DATA”,”time”:”2020-06-22T13:07:02.001Z”,”data”:{“tact”:”OFF”,”hact”:”OFF”,”pact”:”0003″,”vact”:”0001″,”sltm”:”OFF”}}
実行するとHP03が起動し約10秒後に停止します。
関連記事












ディスカッション
コメント一覧
まだ、コメントがありません