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

 找回密码
 立即注册
查看: 961|回复: 3

[技术探讨] 抛弃MQTT与NodeRED,直通解决Zigbee2MQTT设备的断电记忆功能

[复制链接]

18

主题

132

帖子

1067

积分

论坛技术达人

积分
1067
金钱
935
HASS币
0
发表于 2023-7-9 11:19:43 | 显示全部楼层 |阅读模式
本帖最后由 nuknoop 于 2023-11-9 15:00 编辑

之前在闲鱼上采购了插线板zigbee,每次家装断电或者突然小区停电,而插线板没有断电记忆,很痛苦需要手按设备或网页端控制通电

又其次因为我的MQTT服务是安装Hass当中,hass设备是需要插线板供电,这样无法启动MQTT,但是Zigbee2MQTT是不受影响,虽然无法链接MQTT,但是网页端还是可以控制的

在测试中发现Zigbee2MQTT没有APi可以彻底调用可以控制,那么就需要其他方法调用,节省大家时间只需要修改部分内容,代码很简单,,利用py脚本,websocket库

import websocket
import json

# Zigbee2MQTT WebSocket URL
socket_url = 'ws://你的zigebee2mqtt设备:8080/zigbee2mqtt'

# 构建请求消息
message = {
    'topic': '你的zigebe设备名称/set',
    'payload': {'要控制什么按钮': 'ON或者OFF'}
}

# WebSocket 连接回调函数
def on_open(ws):
    print('WebSocket 连接已建立')
    ws.send(json.dumps(message))
    ws.close()  # 发送完消息后关闭连接

# 建立 WebSocket 连接
ws = websocket.WebSocketApp(socket_url,
                            on_open=on_open)

# 运行 WebSocket 连接
ws.run_forever()





回复

使用道具 举报

0

主题

70

帖子

930

积分

高级会员

Rank: 4

积分
930
金钱
860
HASS币
0
发表于 2023-7-10 00:08:16 | 显示全部楼层
你好,具体没看明白,请教一下,我有一个涂鸦的水闸开关设备(zigbee的),用Zigbee2MQTT直接连接的,也是没有断电记忆的功能,每次来电后,自动回到关闭状态。可以用你的这个方法解决吗?
回复

使用道具 举报

18

主题

132

帖子

1067

积分

论坛技术达人

积分
1067
金钱
935
HASS币
0
 楼主| 发表于 2023-7-10 01:09:12 | 显示全部楼层
本帖最后由 nuknoop 于 2023-7-10 01:11 编辑
leilei 发表于 2023-7-10 00:08
你好,具体没看明白,请教一下,我有一个涂鸦的水闸开关设备(zigbee的),用Zigbee2MQTT直接连接的,也是 ...

完全都可以,想要控制涂鸦水闸开关设备,找到zigebee水阀设备的名称按照我的格式写进去。要控制的按钮和开关代码可以再http://你的IP:8080/#/device/设备/state,找到按钮信息,将我的代码复制到txt文本,编码UTF-8,保存为shuifa.py在root,之后zigbee2MQTT服务端安装python3,服务端代码sudo apt install python3 python3-pip
安装完成之后,安装库pip3 install websocket-clientpip3 install requests,之后直接python3 shuifa.py即可,后续开机自启动或添加服务都可以,我自己是做成开机发送到苹果通知
回复

使用道具 举报

0

主题

122

帖子

546

积分

高级会员

Rank: 4

积分
546
金钱
424
HASS币
0
发表于 2023-8-17 22:38:28 | 显示全部楼层
没看懂  但是要赞
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-16 18:57 , Processed in 0.081995 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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