找回密码
 立即注册
查看: 360|回复: 4

[技术探讨] 请教高手这个条件要怎么写在HA的自动化里面?

[复制链接]

76

主题

249

回帖

1452

积分

金牌会员

积分
1452
金钱
1127
HASS币
0
发表于 2025-2-7 12:26:40 | 显示全部楼层 |阅读模式
本帖最后由 norikohxb 于 2025-2-7 23:10 编辑

这是一段我的小度音箱的tts代码
action: tts.xiaomo_say
metadata: {}
data:
  cache: false
  entity_id: media_player.gong_shu_fang_yin_xiang
  message: 明天天气{{states.weather.tian_qi.attributes['daily_forecast'][1]['condition']}}

用它可以让小度播放明天的天气状态
{{states.weather.tian_qi.attributes['daily_forecast'][1]['condition']}}
是调用天气里面的2级属性里面的第二天(明天)的天气状态
==========================================================================
半夜以后环境温度下降空气能制热会比较没有效率,我打算在第二天的天气预报是晴天的情况下提前关闭2级空气能
要如何在HA的自动化的且如果里面添加这个判断命令
我要加塞一条语句
就是第二天的天气=sunny  才可以提前关闭空气能热水器
==========================================================================

请教.png

======================================
直接调用某个实体的state,这个很简单我会。我想要请教的是如何调用属性里面的2级的内容来作为判断
下面是直接一次性调用state的这个我就不请教牛人了,这个是入门必修的
我会的.png 搞定了结果如下
============================================
判断.png




回复

使用道具 举报

76

主题

249

回帖

1452

积分

金牌会员

积分
1452
金钱
1127
HASS币
0
 楼主| 发表于 2025-2-7 18:22:08 | 显示全部楼层
希望能有个高手帮帮忙,就是想要在自动化的且如果里面添加判断明天是否为晴天。
如果明天不是晴天意味着明天热水产能低,那么今天晚上空气能热水器就不关机。
回复

使用道具 举报

3

主题

65

回帖

295

积分

中级会员

积分
295
金钱
227
HASS币
0
发表于 2025-2-7 22:13:34 | 显示全部楼层
直接用属性这个我也不会,我是把属性映射成实体,然后当成实体处理,哈哈哈,有我也想学习一下
回复

使用道具 举报

76

主题

249

回帖

1452

积分

金牌会员

积分
1452
金钱
1127
HASS币
0
 楼主| 发表于 2025-2-7 22:21:32 | 显示全部楼层
mmmmmmm714 发表于 2025-2-7 22:13
直接用属性这个我也不会,我是把属性映射成实体,然后当成实体处理,哈哈哈,有我也想学习一下 ...

你是如何把属性里面的子分类,而且是第二天的某个参数映射为实体的请赐教。
如果可以用一个简单的命令直接调用我感觉整个联动会更紧凑
没有必要新建一个辅助的实体
我已经会通过函数访问到这个天气的实体的属性里面的第二天的
message: 明天天气{{states.weather.tian_qi.attributes['daily_forecast'][1]['condition']}}

这个中括号里面的0是第一天的就是第一个雷同的condition
然后1就代表第二个雷同的condition也就是第二次出现condition的值
以此类推。
比如中括号里面的1是5就代表了第六个重复的condition的值。
但是我不知道如何把这个值 判断他是不是sunny
不懂得这些要怎么写。
回复

使用道具 举报

76

主题

249

回帖

1452

积分

金牌会员

积分
1452
金钱
1127
HASS币
0
 楼主| 发表于 2025-2-7 23:02:16 | 显示全部楼层
mmmmmmm714 发表于 2025-2-7 22:13
直接用属性这个我也不会,我是把属性映射成实体,然后当成实体处理,哈哈哈,有我也想学习一下 ...

自己给自己解答吧
用英文搜索谷歌
https://community.home-assistant ... ub-attribute/303601
找到了这个帖子觉得有用
修改了一下果然可以了

命令是瞎搞的目的是为了有一个debug输出。
由音箱的发生来代表输出

alias: 测试
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.2lou_shu_fang_chou_ti_men_ci
    from: null
    to: null
conditions:
  - condition: template
    value_template: >-
      {{ state_attr('weather.tian_qi','daily_forecast')[6]['condition'] ==
      'cloudy' }}
actions:
  - action: tts.xiaomo_say
    metadata: {}
    data:
      entity_id: media_player.xiao_du_zhi_neng_yin_xiang_9976
      message: 是晴天
      language: zh-CN
mode: single


上面是测试的,把明天后天。。。都测试了一下都可以
最终结论如下
把condition用模版来编辑
value_template: "{{ state_attr('weather.tian_qi','daily_forecast')[1]['condition'] == 'sunny' }}"
上面这个就是内容
中括号1是第二个condition的值,如果写0就是第一个condition的值。也就是今天因为我想要判断的是明天是否是晴天。所以
value_template: "{{ state_attr('weather.tian_qi','daily_forecast')[1]['condition'] == 'sunny' }}"
我用了1.
代表明天。

实体是weather.tian_qi
'daily_forecast')[1]['condition']
相当于一层一层的分级的目录
daily_forecast 是天气的属性里面的一个大分栏
然后里面第二个condition就是我需要的值
判断他是否为sunny
bingo 很简单。

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-5 01:13 , Processed in 0.481565 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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