本帖最后由 misLia 于 2026-1-15 22:00 编辑
chenquanhao 发表于 2026-1-15 19:10
你参考,延时有两种方法,一个是delay(适用于上一段语音时长相对稳定),一个是wait_for_trigger(适用 ...
其实你这种是可以将两次播报合并成一次播报的。这个是我今天刚测试的。通过定义响应变量,让tts直接播放响应变量。但是这种方法也有局限性,变量里带了if后导致整个播报时间变的非常不固定了。后面如果还要接动作,就必须得用wait_for_trigger。
alias: 测试天气播报
sequence:
- variables:
base_text: >-
早上好,我的主人们。今天是{{ now().strftime('%Y年%m月%d日') }}
{{['周一','周二','周三','周四','周五','周六','周日'][now().weekday()] }}。我将为您介绍下今天的天气。
现在上海浦东新区天气{{states('sensor.tian_qi_miao_shu_2')}},温度{{state_attr('weather.he_feng_tian_qi_2','temperature')}}℃,
最高温度{{states('sensor.max_temperature')}}℃,最低温度{{states('sensor.min_temperature')}}℃,
{{state_attr('sensor.chuan_yi_zhi_shu_2','states')}}。
空气质量{{states('sensor.kong_qi_zhi_liang_zhi_shu_ji_bie_2')}}。
{{state_attr('sensor.zi_wai_xian_zhi_shu_2','states')}}
temp_advice_text: >-
{% set ti_gan = states('sensor.ti_gan_wen_du_2') | float %} {% if ti_gan
> 29.99 %}
上班骑电动车穿件防晒衣,注意防晒。
{% elif ti_gan > 20.1 and ti_gan <= 29.99 %}
天气舒适,上班骑电动车不需要特别防护。
{% elif ti_gan > 14.1 and ti_gan <= 20.1 %}
上班骑电动车穿件外套,会让你温暖一点。
{% elif ti_gan <= 14.1 %}
上班骑电动车穿好披风,注意保暖,别感冒了。
{% endif %}
air_quality_text: >-
{% set air_quality = states('sensor.zong_he_kong_qi_zhi_liang_2') |
float %} {% if air_quality > 179.9 %}
空气质量不太好,出门记得戴口罩。
{% else %}
{# 空气质量良好时不需要额外播报 #}
{% endif %}
final_text: "{{ base_text }} {{ temp_advice_text }} {{ air_quality_text }} "
- action: text.set_value
data:
value: "{{ final_text }}"
target:
entity_id: text.xiaomi_lx06_6ee3_play_text
|