本帖最后由 hudan717 于 2023-3-1 17:30 编辑
众所周知,南方的冬天是魔法攻击。因此今年冬天我花重金购置一个日本炕头(虽然冬天已经过了),
不得不说,这玩意真的很舒服,晚上睡在里面,白天根本起不来。
但是,要睡在这玩意下面过夜的话,半夜得起来调好几次温度,因为穿着秋裤睡就容易热,光着大腿睡又容易被烫着,温度调的太低又会感觉冷飕飕。
它的温控是非常传统的旋钮式
懒得起床的我只能把它的温度调到差不多一半的样子,同时用一个智能插座控制它的开关。
这样如果我半夜被热醒,可以直接让siri关了它,冷了再麻烦siri把它重新打开。
几天过去了,老是被它闹的起夜搞得我很烦心,于是我就想——有没有办法可以让它直接保持恒温,把温度控制在一个最容易让我睡着的范围。
有了这个想法,脑子里就一下子规划出了几个方案
首先是解决这个恒温范围,因为这个炕头是用一个电加热的取暖器,直接加热整个小空间,因此我需要测量这个空间的体感温度。
于是我在垃圾堆里翻到了一个破破烂烂的小米温湿度计,找了双面胶直接粘在桌腿上(尽量粘的低一点,跟你躺着的大腿粘在一条线上,这样才测得准)
上面提到睡觉时测量的肯定需要体感温度,否则狭小空间下加热导致湿度过低,哪怕温度正常的情况,皮肤也会感觉到烫。
所以先把查一下体感温度的测量公式,然后在nr中先写好这个关键节点的关键元素
{{((1.8 * (states('sensor.a4c138ac097a_temperature') | float) - 0.55 * (1 - (states('sensor.a4c138ac097a_humidity') | float) / 100) * (1.8 * (states('sensor.a4c138ac097a_temperature') | float) - 26) + 32) - 32) / 1.8 | round(2)}}℃
总之就是根据温度跟湿度来计算
有了这个,接下来就是让炕头自动调节温度了。
从硬件上着手,我有两个思路:
1.拆机,用8266直接接管电阻,从而达到调温的目的。但是缺点是过于危险,而且高温环境也会影响到电路板的工作(主要是拆机了没法售后)
2.3D打印一个旋钮套筒,用8266+舵机,实现类似机械手的形式去控制旋钮,从而达到智能调温的目的。但是嫌麻烦,也被pass了(主要是懒得画STL)
硬件方向不成,就走软件。
于是当前我所使用的方案就应运而生。
首先使用MQTT制作一个温控设备,类似空调,用来开关电机以及传输温度状态。
mqtt:
climate:
- name: '取暖桌'
modes:
- "off"
- "heat"
max_temp: 40 #高低温度自行设置,差不多就行
min_temp: 20
mode_command_topic: "/qunuanzhuo/mode"
temperature_command_topic: "/qunuanzhuo/temp"
current_temperature_topic: "/qunuanzhuo/tempnow"
mode_state_topic: "/qunuanzhuo/state"
temperature_state_topic: "/qunuanzhuo/tempstate"
unique_id: "warm_desk"
这样在HA就会出现一个名字叫取暖桌的空调设备,只有加热跟关闭两个模式,温度调节范围在20-40度之间。
接着到NR中开始配置
首先是让这个温控器能够正常工作
接着加入温度判断功能,简单来说就是当打开“取暖桌”时,同步打开电源(也就是智能插座),炕头开始加热,进入轮训状态,在检测到实际体感温度到达设定温度时,关闭电源;随后温度下降到一定阈值后,自动重新开启电源。
如此循环,直到我关闭“取暖桌”这个温控器以后,彻底关闭智能插座,结束轮巡。
这样一来就达到我要的目的,整体的流就像这个样子,非常简单。我设置的是正负两度,也就是比如我设定了加热到30摄氏度,那么超过32度时,停止加热,降温到28度后,重新开始加热。
炕头2.rar
(2.51 KB, 下载次数: 6)
我也不知道这玩意有多少人用,权当抛砖引玉,希望可以帮助到有需要的人。
有一个要注意的地方就是,如果你也用跟我相同的方案的话,记得智能插座要用那种开关没声音的,否则开关有踢踏踢踏的声音,晚上别想睡踏实。
我去钻炕头了
完
2.28小更新
优化了NR流,已经更新附件了
看了下楼下提到的Generic Thermostat的文档,感觉更好用。
稍微配置了一下,目前还在体验中,有需要的也可以自取
直接加在configration.yaml中即可
climate:
- platform: generic_thermostat
name: Warmdesk #实体名字
heater: switch.sha_fa_deng_dai #控制开关
target_sensor: sensor.a4c138ac097a_temperature #温度实体
min_temp: 20 #最低温
max_temp: 40 #最高温
ac_mode: false #模式,false默认只有关闭跟制热
target_temp: 24 #默认温度
cold_tolerance: 1 #温度比设定低1度时自动开启
hot_tolerance: 1 #高一度时自动关闭
keep_alive:
minutes: 3
initial_hvac_mode: "heat"
sleep_temp: 24
precision: 0.1
更多的请自行参考文档
Generic Thermostat
|