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

 找回密码
 立即注册
查看: 27073|回复: 13

[插件集成] 分享一个中弘空调网关转MQTT的Docker镜像

[复制链接]

3

主题

26

帖子

149

积分

论坛积极会员

积分
149
金钱
118
HASS币
20
发表于 2021-3-22 20:23:06 | 显示全部楼层 |阅读模式
之前试过官方的中弘组件,也试过论坛里几个修改的自定义组件,效果都不是很满意。上周看到Node-Red的版本,试了一下还不错,无奈不想为这个东西专门部署Node-Red。于是简单搞了一个Docker镜像,通过HTTP API连接网关。

镜像地址:https://hub.docker.com/r/halozheng/zhonghong-mqtt (使用说明也在上面)

我也试了一下TCP的协议,文档上说有自动推送状态更新,一直不成功,打电话问了一下中弘,说并没有这个功能,可能是文档错了。所以无论HTTP还是TCP,都得轮询,过两天找时间换成TCP试试。



评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

3

主题

222

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2800
HASS币
10
发表于 2021-3-24 14:52:50 | 显示全部楼层
tcp的弄成轮询都是脑抽
应该是状态改变后每个client都发个消息
回复

使用道具 举报

3

主题

26

帖子

149

积分

论坛积极会员

积分
149
金钱
118
HASS币
20
 楼主| 发表于 2021-3-24 15:41:28 | 显示全部楼层
blindlight 发表于 2021-3-24 14:52
tcp的弄成轮询都是脑抽
应该是状态改变后每个client都发个消息

可惜人家不提供下发能力,也没办法。
回复

使用道具 举报

3

主题

222

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2800
HASS币
10
发表于 2021-3-24 15:56:03 | 显示全部楼层
Halo 发表于 2021-3-24 15:41
可惜人家不提供下发能力,也没办法。

碰到好几个厂家都这样了,不知道这有什么难度
回复

使用道具 举报

0

主题

66

帖子

549

积分

高级会员

Rank: 4

积分
549
金钱
483
HASS币
0
发表于 2021-3-24 18:32:59 来自手机 | 显示全部楼层
有推送的,刚用过
回复

使用道具 举报

3

主题

26

帖子

149

积分

论坛积极会员

积分
149
金钱
118
HASS币
20
 楼主| 发表于 2021-3-24 19:50:07 | 显示全部楼层
yyddyym 发表于 2021-3-24 18:32
有推送的,刚用过

TCP吗?你用的插件还是代码?我测了好几遍,并且打了官方工程师的电话确认,说是没有的。
回复

使用道具 举报

4

主题

129

帖子

1265

积分

金牌会员

Rank: 6Rank: 6

积分
1265
金钱
1131
HASS币
20
发表于 2021-3-25 12:50:08 | 显示全部楼层
哈哈哈,确实省了一个NodeRed,其实NR还是挺好用的,尤其是高级自动化功能秒杀HA的。中弘这个网关我当时测试的时候状态更新确实几乎很少主动推送,所以只能用轮询的方式。这个感觉更像是MODBUS通讯,中弘作为从站是不主动发送任何信息的。当然轮询也无所谓,一般3-5s轮询一次也够一般场景使用了,毕竟不是工业过程控制要求ms级扫描以保证实时性。
回复

使用道具 举报

0

主题

7

帖子

60

积分

注册会员

Rank: 2

积分
60
金钱
53
HASS币
0
发表于 2021-5-12 02:58:05 | 显示全部楼层
本帖最后由 takamachi660 于 2021-5-12 10:42 编辑

刚在我的设备上试了楼主的docker镜像,发现我的中弘网关api返回是无效的http响应。

Go程序报错:
time="2021-05-12T02:20:22+08:00" level=error msg="push state error" error="list unit error: gateway request error: invoke request error: Get \"http://192.168.16.98:80/cgi-bin/api.html?f=17&p=0\": net/http: HTTP/1.x transport connection broken: malformed HTTP response \"{\\\"err\\\":0,\\\"unit\\\":[{\\\"oa\\\":1,\\\"ia\\\":0,\\\"nm\\\":\\\"\\\",\\\"on\\\":0,\\\"mode\\\":4,\\\"alarm\\\":0,\\\"tempSet\\\":\\\"26\\\",\\\"tempIn\\\":\\\"27\\\",\\\"fan\\\":4,\\\"idx\\\":0,\\\"grp\\\":0,\\\"OnoffLock\\\":0,\\\"tempLock\\\":0,\\\"highestVal\\\":26,\\\"lowestVal\\\":26,\\\"modeLock\\\":0,\\\"FlowDirection1\\\":0,\\\"FlowDirection2\\\":0,\\\"MainRmc\\\":0}]}\""

postman报错:Error: Parse Error: Expected HTTP/

难道是中弘在最新版固件里故意break掉http api?浏览器似乎能容忍,所以还能正常访问。还有我的网关也没有开放9999端口,所以tcp协议无法使用。



update: 我加了一个tcp代理把http响应报文补全之后就可以了
回复

使用道具 举报

1

主题

17

帖子

76

积分

注册会员

Rank: 2

积分
76
金钱
59
HASS币
0
发表于 2021-9-21 11:30:55 | 显示全部楼层
大神具体的说明有没有啊,
Create the config file with a name config.yml
Gateway:
Host: 'Your gateway IP address'
Port: 80
Username: 'admin'
Password: ''
MQTT:
Host: 'Your MQTT Broker IP address'
Port: 1883
Username: 'Your MQTT username'
Password: 'Your MQTT password'
Create the container with volume mapping /your-path/config.yml => /config.yml
Run the container
这段话看不懂啊
回复

使用道具 举报

0

主题

27

帖子

108

积分

注册会员

Rank: 2

积分
108
金钱
79
HASS币
0
发表于 2021-12-14 21:21:09 | 显示全部楼层
准备试试看
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 00:29 , Processed in 3.873087 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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