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

 找回密码
 立即注册
查看: 1140|回复: 5

[技术探讨] 求助:如何让tts播报和风天气中的当前天气,未来一小时ti...

[复制链接]

3

主题

53

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
483
HASS币
0
发表于 2024-9-8 20:09:01 | 显示全部楼层 |阅读模式
之前用论坛中彩云天气,使用yaml如下:message: >-    >-     {% set weather_entity = "weather.tian_qi"%} {% set skycon2cn =
    {       "CLEAR_DAY":"晴",       "CLEAR_NIGHT":"晴",      
    "PARTLY_CLOUDY_DAY":"多云",       "PARTLY_CLOUDY_NIGHT":"多云",          "CLOUDY":"阴",       "LIGHT_HAZE":"轻度雾霾",       "MODERATE_HAZE":"中度雾霾",      
    "HEAVY_HAZE":"重度雾霾",       "LIGHT_RAIN":"小雨",      
    "MODERATE_RAIN":"中雨",       "HEAVY_RAIN":"大雨",      
    "STORM_RAIN":"暴雨",       "FOG":"雾",       "LIGHT_SNOW":"小雪",      
    "MODERATE_SNOW":"中雪",       "HEAVY_SNOW":"大雪",      
    "STORM_SNOW":"暴雪",       "DUST":"浮尘",       "SAND":"沙尘",      
    "WIND":"大风"     } %} 当前天气{{ skycon2cn[state_attr(weather_entity,"skycon")]
    }} ,明天天气{{   
    skycon2cn[state_attr(weather_entity,"daily_forecast")[0]["skycon"]] }}
    ,未来1小时天气{{   
    skycon2cn[state_attr(weather_entity,"hourly_forecast")[0]["skycon"]] }}。
action: tts.edge_tts_say

由于彩云没了免费额度,现在想用和风天气(论坛dscao大佬的2024.1.4版)实现上述功能,不知道如何修改,希望坛友援助,先行感谢!
回复

使用道具 举报

13

主题

575

帖子

3047

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3047
金钱
2467
HASS币
20
发表于 2024-9-9 09:00:32 | 显示全部楼层
 {% set weather_entity = "weather.tian_qi"%}
    当前天气{{state_attr(weather_entity,"condition_cn") }}
    ,未来1小时天气{{state_attr(weather_entity,"hourly_forecast")[0]["text"] }}。{% set
    msg = "" %}{% set weather_entity = "weather.tian_qi"%}{% set
    pp1=state_attr(weather_entity,"hourly_forecast")[0]["probable_precipitation"]%}{%
    set
    pp2=state_attr(weather_entity,"hourly_forecast")[1]["probable_precipitation"]
    %}{% set
    pp3=state_attr(weather_entity,"hourly_forecast")[2]["probable_precipitation"]%}{%
    if pp2 > 0 %}{% set msg =
    msg+"2小时内有"+state_attr(weather_entity,"hourly_forecast")[1]["text"]+","%}{%
    endif %}{% if pp3 > 0 %}{% set msg =
    msg+"3小时内有"+state_attr(weather_entity,"hourly_forecast")[1]["text"]+","%}{%
    endif %}

    {% if  pp1>0 or pp2 > 0 or pp3 > 0 %}{% set msg = msg + "注意带伞!" %}{% endif
    %}{{msg}}

    {% set msg2 = "" %}{% if state_attr(weather_entity,"aqi").aqi | int > 129
    %}{% set msg2 = msg2+  "室外污染指数为" + state_attr(weather_entity,"aqi").aqi |
    string + ",记得戴口罩!" %}{% endif %}{{msg2}}

评分

参与人数 1金钱 +5 收起 理由
fulinsky + 5

查看全部评分

回复

使用道具 举报

3

主题

53

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
483
HASS币
0
 楼主| 发表于 2024-9-9 21:16:13 | 显示全部楼层

万分感谢大佬,我还有个开门自动化如果三小时天气异常,开门会自动播报。也因为彩云挂了,想换成和风,希望您有空帮我看看该怎么改。附上原来代码:
  message: >-
    {% set weather_entity = "weather.tian_qi"%} {% set msg = "" %} {% set   
    skycon1 = state_attr(weather_entity,"hourly_forecast")[0]["skycon"] %}  {%
    set     skycon2 = state_attr(weather_entity,"hourly_forecast")[1]["skycon"]
    %} {% set     skycon3 =
    state_attr(weather_entity,"hourly_forecast")[2]["skycon"] %} {% if   
    skycon1 == "LIGHT_RAIN" or skycon2 == "LIGHT_RAIN" or skycon3 ==   
    "LIGHT_RAIN" %}       {% set msg = "3小时内有小雨,注意带伞" %}     {% endif %} {% if
    skycon1 == "MODERATE_RAIN" or skycon2 == "MODERATE_RAIN"     or skycon3 ==
    "MODERATE_RAIN" %}       {% set msg = "3小时内有中雨,注意带伞" %}     {% endif %} {%
    if skycon1 == "HEAVY_RAIN" or skycon2 == "HEAVY_RAIN" or     skycon3 ==
    "HEAVY_RAIN" %}       {% set msg = "3小时内有大雨,注意带伞" %}     {% endif %} {% if
    skycon1 == "STORM_RAIN" or skycon2 == "STORM_RAIN" or     skycon3 ==
    "STORM_RAIN" %}       {% set msg = "3小时内有暴雨,没事就别出去了" %}     {% endif %} {%
    if skycon1 == "LIGHT_SNOW" or skycon2 == "LIGHT_SNOW" or     skycon3 ==
    "LIGHT_SNOW" %}       {% set msg = "3小时内有小雪,注意带伞" %}     {% endif %} {% if
    skycon1 == "MODERATE_SNOW" or skycon2 == "MODERATE_SNOW"     or skycon3 ==
    "MODERATE_SNOW" %}       {% set msg = "3小时内有中雪,注意带伞" %}     {% endif %} {%
    if skycon1 == "HEAVY_SNOW" or skycon2 == "HEAVY_SNOW" or     skycon3 ==
    "HEAVY_SNOW" %}       {% set msg = "3小时内有大雪,注意带伞" %}     {% endif %} {% if
    skycon1 == "STORM_SNOW" or skycon2 == "STORM_SNOW" or     skycon3 ==
    "STORM_SNOW" %}       {% set msg = "3小时内有暴雪,没事就别出去了" %}     {% endif %} {%
    set skycon1 = state_attr(weather_entity,"skycon") %} {% if     skycon1 ==
    "LIGHT_RAIN" %}       {% set msg = "正在下小雨,注意带伞" %}     {% endif %} {% if
    skycon1 == "MODERATE_RAIN" %}       {% set msg = "正在下中雨,注意带伞" %}     {%
    endif %} {% if skycon1 == "HEAVY_RAIN" %}       {% set msg = "正在下大雨,注意带伞"
    %}     {% endif %} {% if skycon1 == "STORM_RAIN" %}       {% set msg =
    "正在下暴雨,没事就别出去了" %}     {% endif %} {% if skycon1 == "LIGHT_SNOW" %}       {%
    set msg = "正在下小雪,注意带伞" %}     {% endif %} {% if skycon1 == "MODERATE_SNOW"
    %}       {% set msg = "正在下中雪,注意带伞" %}     {% endif %} {% if skycon1 ==
    "HEAVY_SNOW" %}       {% set msg = "正在下大雪,注意带伞" %}     {% endif %} {% if
    skycon1 == "STORM_SNOW" %}       {% set msg = "正在下暴雪,没事就别出去了" %}     {%
    endif %}      {% if state_attr(weather_entity,"aqi") | int > 129 %}       {%
    if msg != "" %}         {% set msg = msg + "," %}       {% endif %}       {%
    set msg = msg +  "室外污染指数为" + state_attr(weather_entity,"aqi") | string +
    ",记得戴口罩" %}     {% endif %}      {{ msg }}
回复

使用道具 举报

13

主题

575

帖子

3047

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3047
金钱
2467
HASS币
20
发表于 2024-9-10 08:08:51 | 显示全部楼层
fulinsky 发表于 2024-9-9 21:16
万分感谢大佬,我还有个开门自动化如果三小时天气异常,开门会自动播报。也因为彩云挂了,想换成和风,希 ...

上面的代码就包括1、2、3小时的降水预警
回复

使用道具 举报

3

主题

53

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
483
HASS币
0
 楼主| 发表于 2024-9-10 19:17:57 | 显示全部楼层
DDDear 发表于 2024-9-10 08:08
上面的代码就包括1、2、3小时的降水预警

谢谢谢谢,是不是删除前两行当前天气和未来一小时天气就能实现我要的功能了?
回复

使用道具 举报

13

主题

575

帖子

3047

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3047
金钱
2467
HASS币
20
发表于 2024-9-11 08:16:58 | 显示全部楼层
是的,你可以把代码放在 开发者工具-模板-模板编辑器 里面试一下,不下雨不显示,而且不报错就行
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 00:25 , Processed in 0.135340 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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