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

 找回密码
 立即注册
查看: 72269|回复: 147

[技术探讨] OpenTherm网关,壁挂炉或热水器等采用OT协议的设备接入HA

  [复制链接]

20

主题

247

帖子

1405

积分

金牌会员

Rank: 6Rank: 6

积分
1405
金钱
1153
HASS币
40
发表于 2021-1-16 23:33:42 | 显示全部楼层 |阅读模式
本帖最后由 zxlch 于 2023-1-1 21:24 编辑

威能版本已经做出:https://bbs.hassbian.com/forum.php?mod=viewthread&tid=19115
OT网关硬件,现已更新
无标题.png


在之前的努力中,现在已经实现了控制我家博世壁挂炉(暖气),且并不是仅有开和关状态。

●实现的功能:使用HA控制壁挂炉(暖气)或热水器,且支持开关与调温(透明网关功能暂未开发,但有自定义协议码输入输出的功能,类似于透明网关效果)。
●需要准备什么:准备4根线,2根为一组,OT通信和220V供电各一组。
●如何知道我的设备是否支持OT协议:博世据我所知全部都支持,其他品牌需要拆开面板查看主板上是否有一个2pin端子,而且此端子被短接,如果取消短接则暖气功能关闭。如果是我描述的情况,可以90%肯定是支持的。
●具体支持哪些功能:我把大部分功能做到HA里面了,具体功能下图已经很明了

(注:不同品牌有些厂家自定义协议不太一样,如显示不正确可以单独联系我)
●注册相关事项:未注册仅仅无法保存和读取温控配置,温控配置保存在ESP32内置的EEPROM中,除了不能保存配置外,其他功能无限制。

具体功能介绍:
初次刷入固件后,需要连接名为OpenTherm_zxlch的WIFI,而后在浏览器中键入192.168.4.1后进行无线网络和MQTT服务器的配置。
待配置完成后点击确认网关会重启,下面介绍MQTT相关主题与命令。

主板上的一些扩展:
如上图,板子上共有两个按钮,9个LED,28个端子。
○其中下方两个按钮,左边刷机键,右边是重启
○9个LED由上至下分别是电源指示、OT数据交换指示、OT数据正常指示、点火指示、暖气激活指示、热水激活指示、冷却激活指示、故障激活指示、MQTT服务器连接状态指示。
○28个端子由上至下、由里到外,分别是:1.1-数据RXTA、1.2-地、2.1-数据TXD、2.2-3.3V、3.1-3.3V、3.2-3.3V 100MA输出(与LED x01同步激活)、456共6个端子分别是与LED x02-07同步激活(这些端子与3.3V形成回路,即正极常闭,负级受控。)、789 10共8个端子为ESP32直通IO、11 12 13 14共8个端子为ESP32直通IO(带上拉),设计用于SPI和I2C数据端口。

MQTT主题:
网关接入到MQTT后,会向主题为”zxlch“的位置发送一个消息,内容为”zxlch/OpenTherm/ABCDEFABCDEF“,这个主题会接收到公共消息。
通过上述主题,我们组合得到主题”zxlch/OpenTherm/ABCDEFABCDEF/Return“位置为自定义控制码返回值。下面位置均为状态返回值。
(从这里开始"..."表示"zxlch/OpenTherm/ABCDEFABCDEF")
同理”../Uptime“位置为运行时间。
”../Response“位置为OT数据状态。”../Log“位置为日志。
”../Status/Fault“位置为故障激活。”../Status/CHActive“位置为暖气激活。
”../Status/DHWActive“位置为热水激活。
”../Status/FlameActive“位置为点火激活。
”../Status/CoolingActive“位置为冷却激活。
”../Status/Diagnostic“位置为诊断激活。
”../Status/SummerMode“位置为夏季模式(暖气禁用)。
”../Tboiler“位置为出水温度。
”../Tdhw“位置为热水温度。
”../RelModLevel“位置为调制温度。
”../Status/CHEnable“位置为暖气设为开启。
”../Status/DHWEnable“位置为热水设为开启。
”../Status/CoolingEnable“位置为冷却设为开启。
”../Tset“位置为暖气设置温度。
”../TdhwSet“位置为热水设置温度。

MQTT控制码:
我们向主题为”zxlch/OpenTherm/ABCDEFABCDEF/Command“的位置发送控制码来控制OT兼容设备,控制码如下:
发送”0“为重启网关。
发送”r“为读取配置(仅注册后支持)。
发送”s“为保存配置(仅注册后支持)。
发送”h1“为暖气设为开启(h0为关闭)。
发送”w1“为热水设为开启(w0为关闭)。
发送”c1“为冷却设为开启(c0为关闭)。
发送”hs99“为设置暖气温度为99摄氏度(hs01为设为1摄氏度,必须为两位数字)。
发送”ws99“为设置热水温度为99摄氏度(ws01为设为1摄氏度,必须为两位数字)。
发送""为发送自定义协议(x为16进制),发送后”../Return“位置会得到16进制返回值(此功能暂不对外开放)。
(还有部分功能暂未开放,外部温度补偿等)

HomeAssistant配置:
。。


====================================以下为旧帖====================================

开贴记录我家壁挂炉接入HA,制作OpenTherm协议转MQTT协议

在之前我发过帖子咨询是否有谁把家里的暖气接入HA的玩法https://bbs.hassbian.com/thread-9490-1-1.html,但是感觉关注度不是很高。这个冬天我家暖气是白天45℃,晚上40℃,每次都要调整感觉很麻烦,所以又想起壁挂炉接入HA这个想法。
所以开帖记录一下,也可以给大家提供一点思路。

写这个帖子之前,我查询资料和拆开了我的博世壁挂炉,可以确认到我的壁挂炉支持一种叫OT的协议(全名OpenTherm协议),这个协议除了国产部分品牌和韩国几乎全部品牌不支持以外,其他都支持,他是一个双线双向数据通信端口,他可以实现取电和通信,即外部控制器无需单独的电力,具体知乎上有一个较为详细的解释https://zhuanlan.zhihu.com/p/259567500?utm_source=wechat_session
而国外也有一个开源的OpenTherm网关项目,从八九年前已经实现,今年HA已经正式支持(但实现方法太麻烦,我不太喜欢这种方式),而我参考了他的实现方式,也下载到OT协议的协议文档并研究,正式打算用ESP32来实现OT2MQTT这个功能,所有的状态和设定方式都使用MQTT接入到HA,计划采用最小化设计,希望我的想法可以完美实现。
目标:
1、多LED显示状态。(已实现,且可以外接7路继电器显示状态)
2、扩展支持OLED屏幕(128x64)或其他屏。
3、至少支持调节和查看热水温度、暖气温度、暖气开关。(已实现)
4、支持定时。
5、所有状态和设置均可使用MQTT进行查看和调整。(已实现)
6、支持升级。(已实现)

===========
20210118
这两天抽空画了原理图和PCB,暂定尺寸是44.5mmx62mm,
支持IIC和SPI扩展,有8个IO可以扩展,带7个自定义电平输出(每路电平有1个LED,1个输出,可以作为状态指示也可以作为外接继电器等功能)。
等丝印画好以后就打板买材料。


===========
20210127
休息了好久,时间太长都没有动力了,现在已经把丝印画好,开始发到嘉立创打板子了



===========
20210129原件已买齐全,全部到了以后焊接完成就开始写固件了

===========
20210201焊接出了第一个板子,明天开始写固件了



===========
20210202今天写了一个测试固件,已经可以读取和设置火焰开关和大小和状态,生活热水开关和温度和状态,供暖开关和温度和状态了。现在手里有OT协议文档,打算吧所有功能都加进去。
===========
20210207现在固件已经写完了,测试以后发现部分指令获取到的数据跟协议文档上不同。不知道是不是每个品牌并不是严格按照协议说明书进行的编程。有意向的朋友可以私信我,加我QQ以后咱们共同进行测试!

===========
20210209现固件已经基本完成,HA配置也写好了。本来打算在HA中用2个空调组件来做暖气和生活热水的温控器,但是HA的空调组件太麻烦了,我试了大概半小时放弃了。
现在HA中显示如下图。
Screenshot_20210209.jpg






评分

参与人数 4金钱 +56 HASS币 +20 收起 理由
lnight + 8 感谢楼主分享!
sorrypqa + 8 大神666!
Roger + 20 + 20 专门注册账号来顶你!
whxciotw + 20 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

19

主题

597

帖子

4047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4047
金钱
3435
HASS币
40
发表于 2021-1-17 00:03:41 | 显示全部楼层
666啊老铁!持续关注中
终于看到有OT协议接入HA的了!
顺便求问博世炉子的具体型号~!
回复

使用道具 举报

26

主题

217

帖子

913

积分

高级会员

Rank: 4

积分
913
金钱
696
HASS币
0
发表于 2021-1-17 00:04:59 | 显示全部楼层
我的是菲斯曼,不知道可以不?
回复

使用道具 举报

20

主题

247

帖子

1405

积分

金牌会员

Rank: 6Rank: 6

积分
1405
金钱
1153
HASS币
40
 楼主| 发表于 2021-1-17 01:58:51 来自手机 | 显示全部楼层
dotlife 发表于 2021-1-17 00:04
我的是菲斯曼,不知道可以不?

网上查的好像可以,我不太确定
回复

使用道具 举报

20

主题

247

帖子

1405

积分

金牌会员

Rank: 6Rank: 6

积分
1405
金钱
1153
HASS币
40
 楼主| 发表于 2021-1-17 02:04:20 | 显示全部楼层
whxciotw 发表于 2021-1-17 00:03
666啊老铁!持续关注中
终于看到有OT协议接入HA的了!
顺便求问博世炉子的具体型号~! ...

好像是叫欧洲之星还是能源之星,但是我看我家炉子铭牌又写的是6000。其实不用管型号的,博世的炉子应该是全系列都支持OT的。
回复

使用道具 举报

17

主题

760

帖子

5276

积分

论坛元老

Rank: 8Rank: 8

积分
5276
金钱
4511
HASS币
0
发表于 2021-1-17 09:15:30 | 显示全部楼层
本帖最后由 sirakawa 于 2021-1-17 09:20 编辑

感谢分享。。
我炉子只用来取暖,所谓水温设置好就不变了。。。。

我其实一直想要的是分屋子温控以及暖气水压的数据。可惜分屋子温控改造太麻烦了- -暖气都要断了接电磁阀。水压数据的话我这炉子那种机械压力表,只能图像识别。
回复

使用道具 举报

9

主题

519

帖子

2280

积分

金牌会员

Rank: 6Rank: 6

积分
2280
金钱
1761
HASS币
0
发表于 2021-1-17 16:59:05 | 显示全部楼层

111

111

我是这款型号。
现在用的就是  8266+继电器  ON/OFF
楼主等你哦
回复

使用道具 举报

0

主题

22

帖子

587

积分

高级会员

Rank: 4

积分
587
金钱
565
HASS币
0
发表于 2021-1-17 17:08:35 来自手机 | 显示全部楼层
期待后续,持续关注中
回复

使用道具 举报

0

主题

72

帖子

1005

积分

金牌会员

Rank: 6Rank: 6

积分
1005
金钱
933
HASS币
0
发表于 2021-1-18 09:16:53 | 显示全部楼层
我用的是威能的锅炉和NEST温控器, 威能居然原生不支持Opentherm,  Nest倒是支持。
威能好像外接一个模块可以支持opentherm。
支持楼主折腾开发, 也许哪天可以用上。
回复

使用道具 举报

20

主题

247

帖子

1405

积分

金牌会员

Rank: 6Rank: 6

积分
1405
金钱
1153
HASS币
40
 楼主| 发表于 2021-1-18 12:40:41 来自手机 | 显示全部楼层
seefa 发表于 2021-1-18 09:16
我用的是威能的锅炉和NEST温控器, 威能居然原生不支持Opentherm,  Nest倒是支持。
威能好像外接一个模块 ...

nest我记得ha直接支持了吧
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 04:13 , Processed in 0.062721 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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