简单方便的体感温度传感器,不用定制组件、不用代码
本帖最后由 XCray 于 2021-5-10 10:54 编辑看到有朋友顶出一个老帖子:《室内体感温度插件,可用于空调自动化》https://bbs.hassbian.com/thread-4940-1-1.html
原作者是以插件(custom_component)的方式实现的。
感谢原作者yinjiong,这个创意很好、也很实用。但其实现方式明显不是最优选项。
其实体感温度的计算只是用到了温度和湿度数值,计算也并不复杂,没必要动用程序代码,template就可以搞定——只需要在yaml里配置即可。
******新版本配置语法******
没注意自哪个版本开始,官方推荐的基于模板的实体配置语法发生了改变,按照新版要求修改如下:
template:
- sensor:
- name: apptempbt
device_class: temperature
unit_of_measurement: °C
state: >
{% set st = states('sensor.bttemp') | float %}
{% set sh = states('sensor.bthumi') | float %}
{{(st*1.07 + sh/500*6.105*e**(st*17.27/(st+237.7)) - 3)|round(1)}}
另,这个论坛的嵌入代码功能绝逼有bug,经常擅自把插入的代码修改的莫名其妙:@,为避免误导,再附个图片:
保存后也无需重启HA,在 ”配置、服务控制、配置重载“ 那儿点击 ”模板实体“ 即可。
******旧版本配置语法******
这么配置虽然能用,但说不定哪个版本开始就不行了,推荐采用新语法。
另,这个论坛的嵌入代码功能绝逼有bug,经常擅自把插入的代码修改的莫名其妙,下面的大家看个意思就行了:@
配置方法如下(放在sensor下面,把其中的btTemp和btHumi替换成自己的温湿度传感器):
<u><font color="#2f4f4f">- platform: template
sensors:
apptemp:
device_class: temperature
unit_of_measurement: °C
value_template: "{{states('sensor.btTemp')|float*1.07 + states('sensor.btHumi')|float/500*6.105*e**(states('sensor.btTemp')|float*17.27/(states('sensor.btTemp')|float+237.7)) -3}}"</font></u>如果不喜欢小数点后那么多没啥意义的数字,可以加个括号括起来然后 |round(2),这样:<u><font color="#2f4f4f">"{{(states('sensor.btTemp')|float*1.07 + states('sensor.btHumi')|float/500*6.105*e**(states('sensor.btTemp')|float*17.27/(states('sensor.btTemp')|float+237.7)) -3)|round(2)}}"</font></u>
保存、重启即可。
计算方法来自度娘百科:
中央气象局御用的算法,应该也算权威了。
我把后面的“-0.65V-2.7”合并为 -3,即假设室内有一点点空气流动(风速约0.46米/秒)。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一点感想:自以为很聪明、其实恰恰相反的言论真是无处不在啊!
看这个百科条目的讨论看到的:
本帖最后由 dscao 于 2020-8-2 12:44 编辑
这个好,加入代码简单。 刚试了一下,就是重启ha后,米家蓝牙温度计2的上报要等很久才上报,一开始没有值,这个结果为 -3度,等了好久温度计上报后,这里还是没更新。
------------------------------------
发现我把温度传感器填写错了 ,改正后正常刷新了。
dscao 发表于 2020-8-2 12:05
这个好,加入代码简单。 刚试了一下,就是重启ha后,米家蓝牙温度计2的上报要等很久才上报,一开始没有值, ...
:lol
我还在奇怪为啥我用的好好的、到你那儿就不更新了呢?想了很大一会儿,幸好你又编辑帖子把原因找到了,不然我想破脑袋也想不出为啥~ 34.1度91% 湿度 显示43.18 体感温度,这个度数差不多么 ,楼主 chzyh 发表于 2020-8-2 16:08
34.1度91% 湿度 显示43.18 体感温度,这个度数差不多么 ,楼主
数值计算没问题。
至于说这个结果准不准(计算方法准不准),其实是没有标准答案的,体感温度,说的就是感觉。大概参考就是了。 43度的体感温度还不把人热死了!!这得休克了 jyz_0501 发表于 2020-8-2 21:02
43度的体感温度还不把人热死了!!这得休克了
不管算出来的体感温度是多少,气温34.1、湿度91%的环境对绝大多数正常人来说,绝对称得上酷热难耐,在这样的环境待的时间长点儿,中暑、休克都不算意外。
对了,根据NOAA的计算,体感温度是60——更恐怖?
其实不同的模型不同的算法,计算结果差异都是正常现象,感觉的东西,说不上准确两个字。在同一个模型/算法基础上,纵向比较才有意义。 XCray 发表于 2020-8-3 07:51
不管算出来的体感温度是多少,气温34.1、湿度91%的环境对绝大多数正常人来说,绝对称得上酷热难耐,在这 ...
也是哈32度都热到不行 这个不错,最近正好寻找计算公式 感谢楼主。不过为什么加了|round(2) 之后,小数点后还是有很多位?