本帖最后由 darkleliel 于 2021-1-19 18:21 编辑
2021年1月19日更新,修改了一个显示温度和房间实际温度相同时不会将目标温度恢复的bug,优化了一下代码
========以下原文========
最近寒潮阵阵,尽管北京有集中供暖也架不住家中分水阀手动控制,导致屋里忽冷忽热(20-30℃不等),于是就有了今天这篇
友情提示:
1、直径为53mm,不适合分水器并排相邻安装(大部分间距为50mm)
2、自带温度显示校正范围±9℃,安装在分水器上需配合其他自动化(如HA、NR)使用(分水器附近比目标室内高10℃以上较常见),安装在暖气片上且与暖气片同处一室问题不大
3、有转接件,具体能否安装请自行咨询店家
涂鸦Zigbee Radiator Actuator(智能温控暖气阀)
盒子说明书全是英文,还印着Google、Alexa,应该是主攻国外市场,中文资料基本没有,而且翻译应该是暖气执行器
装好以后长这样
两节AA电池供电,后续准备改造14500占位桶外接DC3.3V电源供电
安装非常简单,将原有手轮拆掉,此时分水器阀杆回弹至最高,流量最大。安装执行器(建议先不装电池),保证不会晃动、上提没有空隙就行了,不需要再拧紧浪费阀芯行程。装好电池、电池盖,会自动开始自检(大概就是确认一下阀门行程吧,能听到电机声音)自检完成后就可以正常使用了
所有大多数功能都可以不联网使用(我这种温差较大的使用场景除外),甚至包括工作日、假日分时间段(5段,精确到分钟)控温,ECO、BOOST模式、手动、离开模式等,功能很多很好玩
买之前专门研究了一下,zigbee2mqtt官方支持,按照说明书配对非常顺畅,型号TS0601_thermostat,分类末端设备(用电池的嘛),由于大部分分水器都在柜子里,所以注意zigbee信号强度
zigbee2mqtt支持页
在Home Assistant中可以方便的调整温度、模式等,获取所有状态信息
我的目标只是房间恒温,但因为房间比分水器处高了10℃以上,单靠执行器本身的温度校正不足以获取准确温度,只好写了个在Node-RED写了个function实现了需要的功能
我的需求是房间24小时恒温22℃,执行器设置自动模式,手动温控,目标温度22℃
自动化基本原理:
1、如果房间与执行器传感器温差大于9℃,则执行器温度校正最大值(±9℃),比±9℃大的部分通过调整目标温度实现(例如房间21℃,执行器处31℃,需要目标22℃,则设置执行器校正-9℃,此时执行器显示温度22℃,目标温度设置成23℃,即需要升温1℃)
2、如果房间与执行器传感器温差小于等于9℃,则执行器温度校正值按实际设置,目标温度设置22℃
全部flow结构如下
上面function用来在储存执行器显示温度和执行器温度校正值,延迟触发是由于这个执行器状态改变时会同时发出很多条msg,只取最新的一条
下面function如下
var temperature = global.get("study_local_temperature")
var calibration = global.get("study_local_temperature_calibration")
var setpoint
var msg1 = { payload: {"current_heating_setpoint": 22} }
if ( Math.abs( msg.payload - temperature ) > 0.2 )
{
var payload = (Math.round((msg.payload - temperature) * 2)) / 2 + calibration
if (payload < -9)
{
msg.payload = -9
setpoint = 22 - 9 - payload
msg1 = { payload: {"current_heating_setpoint": setpoint} }
return [ msg, msg1 ]
}
else if (payload > 9)
{
msg.payload = 9
setpoint = 22 + 9 - payload
msg1 = { payload: {"current_heating_setpoint": setpoint} }
return [ msg, msg1 ]
}
else
{
msg.payload = payload
return [ msg, msg1 ]
}
}
else
{
return [ null, msg1 ]
}
其中"study_local_temperature"是执行器显示温度,"study_local_temperature_calibration"是执行器温度校准值,msg.payload是前面获取的房间实际温度
代码比较丑陋,只是兴趣爱好,功能能实现我就很满意了
用于暖气片时,由于暖气片温控阀处和房间内温差一般不会超过9℃,直接设置校正值即可
本来想着用这个把我家4路需要温控的阀门都替换一下,由于尺寸关系可能无法全部换成这个
下面准备用传统电热执行器(写着230V2w,应该是接220V交流电,通过电压控制)+调光模块试试,有更多进展再来发帖
|