在之前的努力中,现在已经实现了控制我家博世壁挂炉(暖气),且并不是仅有开和关状态,现我将把PCB和固件一起发布出来。我准备做一批出来,有需要的可以联系我,带注册一起应该在80元,仅需要注册码10元。
●实现的功能:使用HA控制壁挂炉(暖气)或热水器,且支持开关与调温(透明网关功能暂未开发,但有自定义协议码输入输出的功能,类似于透明网关效果)。
●需要准备什么:准备4根线,2根为一组,OT通信和220V供电各一组。
●如何知道我的设备是否支持OT协议:博世据我所知全部都支持,其他品牌需要拆开面板查看主板上是否有一个2pin端子,而且此端子被短接,如果取消短接则暖气功能关闭。如果是我描述的情况,可以90%肯定是支持的。
●具体支持哪些功能:我把大部分功能做到HA里面了,具体功能下图已经很明了
(注:不同品牌有些厂家自定义协议不太一样,如显示不正确可以单独联系我)
●注册相关事项:未注册仅仅无法保存和读取温控配置,温控配置保存在ESP32内置的EEPROM中,除了不能保存配置外,其他功能无限制。
●下载地址:如下
PCB:Gerber_PCB_2021-01-17_16-14-44.zip (56.0 KB)
固件:OpenthermGateway.zip (519.7 KB)
具体功能介绍:
初次刷入固件后,需要连接名为OpenTherm_zxlch的WIFI,而后在浏览器中键入192.168.4.1后进行无线网络和MQTT服务器的配置。
待配置完成后点击确认网关会重启,下面介绍MQTT相关主题与命令。
主板上的一些扩展:
如上图,板子上共有两个按钮,9个LED,28个端子。
○其中下方两个按钮,左边刷机键,右边是重启
○9个LED由上至下分别是电源指示、OT数据交换指示、OT数据正常指示、点火指示、暖气激活指示、热水激活指示、冷却激活指示、故障激活指示、MQTT服务器连接状态指示。
○28个端子由上至下、由里到外,分别是:1.1-数据RXD、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“位置为自定义控制码返回值。[color=#ff0000]下面位置均为状态返回值。[/color]
(从这里开始"…“表示"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的玩法,但是感觉关注度不是很高。这个冬天我家暖气是白天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中显示如下图。