『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 5263|回复: 6

[基础教程] 用python 模拟 mqtt客户端

[复制链接]

5

主题

122

帖子

494

积分

中级会员

Rank: 3Rank: 3

积分
494
金钱
372
HASS币
0
发表于 2019-6-13 09:22:10 | 显示全部楼层 |阅读模式
本帖最后由 lipzbob 于 2019-6-14 18:52 编辑

     有时候mqtt服务端安装后不知道如何调试,今天在没有硬件的情形下用几行python代码就可以连通ha实现联动。为理解mqtt的原理提供个清晰的思路。mqtt代理是安装的mosquitto IP地址:10.84.193.69,端口:1883
今天模拟的是mqtt的开关,代码如下:(后期加了UI,效果见:用python 模拟 mqtt客户端之二
import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("home/8ch/2")

def on_message(client, userdata, msg):
    #print(msg.topic+":"+str(msg.payload.decode()))
    print(msg.topic+":"+msg.payload.decode("utf-8"))
    client.publish("home/8ch/2/stat", "OFF"*bool(msg.payload.decode("utf-8")=='OFF')+"ON"*bool(msg.payload.decode("utf-8")=='ON'))

if __name__ == '__main__':
    client = mqtt.Client()
    client.username_pw_set("admin", "password1")  # 必须设置,否则会返回「Connected with result code 4」
    client.on_connect = on_connect
    client.on_message = on_message
    HOST = "10.84.193.69"
    client.connect(HOST, 1883, 60)
    client.loop_start()

HA是的设置如下:
mqtt:
   broker: 10.84.193.69
   port: 1883
   client_id: home-assistant-1
   keepalive: 60
   username: pi
   password: raspberry
   discovery: true
switch:
  - platform: mqtt
    name: "t1"
    state_topic: "home/8ch/2/stat"
    command_topic: "home/8ch/2"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true 

配置好以后启动进入ha就能看到一个t1的开关,点击即可体验打开关闭开关t1的情境,同时在python客户端可以实时看到ha发送到客户端的命令。
2.png

1.png

评分

参与人数 1金钱 +20 收起 理由
+ 20 大神的玩法就是跟一般人不一样.

查看全部评分

回复

使用道具 举报

3

主题

189

帖子

1041

积分

金牌会员

Rank: 6Rank: 6

积分
1041
金钱
852
HASS币
0
发表于 2019-6-13 09:38:55 | 显示全部楼层
python真是好啊,什么库都有,太方便了
回复

使用道具 举报

5

主题

122

帖子

494

积分

中级会员

Rank: 3Rank: 3

积分
494
金钱
372
HASS币
0
 楼主| 发表于 2019-6-13 09:50:35 | 显示全部楼层
python确实强大。
回复

使用道具 举报

1

主题

237

帖子

962

积分

论坛积极会员

积分
962
金钱
725
HASS币
0
发表于 2019-6-13 10:53:02 | 显示全部楼层
威武,谢谢楼主
回复

使用道具 举报

2

主题

123

帖子

589

积分

高级会员

Rank: 4

积分
589
金钱
466
HASS币
10
发表于 2019-6-13 11:18:17 | 显示全部楼层
这个真好,太实用了
回复

使用道具 举报

8

主题

2073

帖子

6053

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6053
金钱
3980
HASS币
145

灌水之王

发表于 2019-6-14 09:27:59 | 显示全部楼层
这种就是路过看看的  根本不敢动手
回复

使用道具 举报

5

主题

122

帖子

494

积分

中级会员

Rank: 3Rank: 3

积分
494
金钱
372
HASS币
0
 楼主| 发表于 2019-6-14 09:35:15 | 显示全部楼层
xieahui 发表于 2019-6-14 09:27
这种就是路过看看的  根本不敢动手

纯软件模拟,锻炼能力,又不会损坏任何东西。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 02:29 , Processed in 0.474245 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表