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

 找回密码
 立即注册
查看: 1851|回复: 12

[进阶教程] 在你的esphome里面集成体感温度

[复制链接]

37

主题

396

帖子

4104

积分

元老级技术达人

积分
4104
金钱
3653
HASS币
250
发表于 2022-6-7 11:31:30 | 显示全部楼层 |阅读模式
本帖最后由 trz0332 于 2022-6-7 16:18 编辑

灵感来自
[插件集成] Thermal Comfort 热舒适度集成(含体感温度)
这个帖子。
感觉还行去看了看源代码,觉得貌似可以直接放在esphome里面,
研究了一下 将传感器温度id定义为sht20_t 湿度的id定义为sht20_h,然后将下面配置文件复制到sensor的配置里面就行了
游客,如果您要查看本帖隐藏内容请回复

1654572653.png

  - platform: template
    name: "Heat Index"
    lambda: |-
      float _temperature ;
      float _humidity ;
      float hi ;
      float fahrenheit;
      _temperature = id(sht20_t).state;
      _humidity = id(sht20_h).state;
      fahrenheit = _temperature*9/5+32;
      hi = 0.5 * (fahrenheit + 61.0 + ((fahrenheit - 68.0) * 1.2) + (_humidity * 0.094));
      if (hi>79){
            hi = -42.379 + 2.04901523 * fahrenheit;
            hi = hi + 10.14333127 * _humidity;
            hi = hi + -0.22475541 * fahrenheit * _humidity;
            hi = hi + -0.00683783 * pow(fahrenheit, 2);
            hi = hi + -0.05481717 * pow(_humidity, 2);
            hi = hi + 0.00122874 * pow(fahrenheit, 2) * _humidity;
            hi = hi + 0.00085282 * fahrenheit * pow(_humidity, 2);
            hi = hi + -0.00000199 * pow(fahrenheit, 2) * pow(_humidity, 2);
      }
      if( _humidity < 13 and fahrenheit >= 80 and fahrenheit <= 112){
            hi = hi - ((13 - _humidity) * 0.25) * sqrt((17 - abs(fahrenheit - 95)) * 0.05882);
            } else if (_humidity > 85 and fahrenheit >= 80 and fahrenheit <= 87){
              hi = hi + ((_humidity - 85) * 0.1) * ((87 - fahrenheit) * 0.2);
            }

      return 5.0/9*(hi-32);
    update_interval: 30s
    accuracy_decimals: 1
    unit_of_measurement: °C

  - platform: template
    name: "DewPoint"
    id: dp1
    lambda: |-
      float _temperature ;
      float _humidity ;
      float A0 ;
      float SUM;
      float VP ;
      float Td;
      _temperature = id(sht20_t).state;
      _humidity = id(sht20_h).state;
      A0 = 373.15 / (273.15 + _temperature);
      SUM = -7.90298 * (A0 - 1);
      SUM += 5.02808 * log10(A0);
      SUM += -1.3816e-7 * (pow(10, (11.344 * (1 - 1 / A0))) - 1);
      SUM += 8.1328e-3 * (pow(10, (-3.49149 * (A0 - 1))) - 1);
      SUM += log10(1013.246);
      VP = pow(10, SUM - 3) * _humidity;
      Td = log(VP / 0.61078);
      Td = (241.88 * Td) / (17.558 - Td);
      return Td;
    update_interval: 30s
    accuracy_decimals: 1
    unit_of_measurement: °C

  - platform: template
    name: "absolute_humidity"
    lambda: |-
      float _temperature ;
      float _humidity ;
      float abs_temperature ;
      float abs_humidity;
      _temperature = id(sht20_t).state;
      _humidity = id(sht20_h).state;
      abs_temperature = _temperature + 273.15;
      abs_humidity = 6.112;
      abs_humidity *= exp((17.67 * _temperature) / (243.5 + _temperature));
      abs_humidity *= _humidity;
      abs_humidity *= 2.1674;
      abs_humidity /= abs_temperature;
      return abs_humidity;
    update_interval: 30s
    accuracy_decimals: 1
    unit_of_measurement: g/m³

  - platform: template
    name: "simmer_index"
    id: Si
    lambda: |-
      float _temperature ;
      float _humidity ;
      float si ;
      float fahrenheit;
      _temperature = id(sht20_t).state;
      _humidity = id(sht20_h).state;
      fahrenheit = _temperature*9/5+32;
      si = (1.98* (fahrenheit - (0.55 - (0.0055 * _humidity)) * (fahrenheit - 58.0))- 56.83);

      if (fahrenheit < 70){
            si = fahrenheit;
          }
      return 5.0/9*(si-32);
    update_interval: 30s
    accuracy_decimals: 1
    unit_of_measurement: °C

评分

参与人数 4金钱 +40 收起 理由
sorrypqa + 16 大神666!
sss190 + 8 感谢楼主分享!
jjcs + 8 在下对你的景仰犹如滔滔长江之水,连绵不绝.
dscao + 8 感谢楼主分享!只要支持公式的地方应该都可.

查看全部评分

回复

使用道具 举报

0

主题

5

帖子

68

积分

注册会员

Rank: 2

积分
68
金钱
63
HASS币
0
发表于 2022-6-8 11:39:14 | 显示全部楼层
先学习借鉴一下
回复

使用道具 举报

3

主题

76

帖子

1105

积分

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1029
HASS币
0
发表于 2022-6-11 10:36:40 | 显示全部楼层
感谢楼主,实践操作成功 微信图片编辑_20220611103503.jpg
回复

使用道具 举报

37

主题

396

帖子

4104

积分

元老级技术达人

积分
4104
金钱
3653
HASS币
250
 楼主| 发表于 2022-6-11 10:39:34 | 显示全部楼层
sss190 发表于 2022-6-11 10:36
感谢楼主,实践操作成功

你这个风速风向传感器用的是什么?
回复

使用道具 举报

3

主题

76

帖子

1105

积分

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1029
HASS币
0
发表于 2022-6-11 16:59:33 | 显示全部楼层
trz0332 发表于 2022-6-11 10:39
你这个风速风向传感器用的是什么?

485的超声波风速风向计
回复

使用道具 举报

37

主题

396

帖子

4104

积分

元老级技术达人

积分
4104
金钱
3653
HASS币
250
 楼主| 发表于 2022-6-11 17:47:42 | 显示全部楼层
sss190 发表于 2022-6-11 16:59
485的超声波风速风向计

感觉很土豪的样子
回复

使用道具 举报

1

主题

57

帖子

448

积分

中级会员

Rank: 3Rank: 3

积分
448
金钱
391
HASS币
0
发表于 2022-6-11 18:25:25 | 显示全部楼层
666666666666
回复

使用道具 举报

3

主题

76

帖子

1105

积分

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1029
HASS币
0
发表于 2022-6-11 19:35:28 | 显示全部楼层
trz0332 发表于 2022-6-11 17:47
感觉很土豪的样子

我没买前也觉得这玩意儿挺贵,后来发现淘宝有卖不到500块的。github上还有开源的方案做出来物料不到200块。
回复

使用道具 举报

0

主题

17

帖子

105

积分

注册会员

Rank: 2

积分
105
金钱
88
HASS币
0
发表于 2022-6-21 21:20:05 | 显示全部楼层
你的esphome里面集成体感温度 [修改]
回复

使用道具 举报

0

主题

8

帖子

50

积分

注册会员

Rank: 2

积分
50
金钱
42
HASS币
0
发表于 2022-6-21 23:12:59 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 23:48 , Processed in 0.057150 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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