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

 找回密码
 立即注册
查看: 1792|回复: 8

[已解决] 如何写homeassistant自动化

[复制链接]
回帖奖励 8 金钱 回复本帖可获得 1 金钱奖励! 每人限 1 次

5

主题

59

帖子

780

积分

高级会员

Rank: 4

积分
780
金钱
721
HASS币
0
发表于 2023-7-19 07:34:16 | 显示全部楼层 |阅读模式
本帖最后由 546485 于 2023-7-23 19:50 编辑

已知:weather.tian_qi_2的属性
update_time: 2023-07-19 07:15
condition_cn: 小雨
aqi:
  pubTime: 2023-07-19T05:00+08:00
  aqi: '24'
  level: '1'
  category: 优
  primary: NA
  pm10: '24'
  pm2p5: '13'
  no2: '34'
  so2: '10'
  co: '0.5'
  o3: '5'
如何写自动化,当api的 level变化时,输出level的结果.
用homeassistant的自动化图形化操作是:
platform: state
entity_id:
  - weather.tian_qi
attribute: aqi
问题是图形化操作只能选择api,不能选择api下的level,大神门如何修改自动化的触发条件

回复

使用道具 举报

10

主题

1388

帖子

4429

积分

论坛元老

Rank: 8Rank: 8

积分
4429
金钱
3041
HASS币
0
发表于 2023-7-19 08:55:08 | 显示全部楼层

回帖奖励 +1 金钱

在Home Assistant的自动化配置中,可以使用模板来获取嵌套属性的值。在这种情况下,您可以使用模板来获取weather.tian_qi_2的aqi属性中的level值。以下是一个示例自动化配置:

- alias: 输出AQI级别变化
  trigger:
    platform: state
    entity_id: weather.tian_qi_2
  condition:
    condition: template
    value_template: "{{ trigger.to_state.attributes.aqi.level != trigger.from_state.attributes.aqi.level }}"
  action:
    service: notify.notify
    data:
      message: "AQI级别已变为 {{ trigger.to_state.attributes.aqi.level }}"
yaml复制代码
这个自动化配置将在weather.tian_qi_2的状态发生变化时触发。然后,它使用条件模板来检查aqi属性中的level值是否发生变化。如果发生变化,它将通过通知服务发送一条消息,其中包含新的AQI级别值。

请注意,上述示例中使用了notify.notify服务来发送通知消息。您可以根据自己的需要替换为其他通知服务,例如notify.mobile_app或notify.telegram等。

希望这可以帮助到您!
回复

使用道具 举报

5

主题

59

帖子

780

积分

高级会员

Rank: 4

积分
780
金钱
721
HASS币
0
 楼主| 发表于 2023-7-19 20:39:30 | 显示全部楼层
隔壁的王叔叔 发表于 2023-7-19 08:55
在Home Assistant的自动化配置中,可以使用模板来获取嵌套属性的值。在这种情况下,您可以使用模板来获取we ...

谢了,成功运行,要理解下原理
回复

使用道具 举报

10

主题

1388

帖子

4429

积分

论坛元老

Rank: 8Rank: 8

积分
4429
金钱
3041
HASS币
0
发表于 2023-7-20 08:52:20 | 显示全部楼层
546485 发表于 2023-7-19 20:39
谢了,成功运行,要理解下原理

原理就是通过模板拿到下一级level的值,比较是不是发生了变化。
回复

使用道具 举报

5

主题

59

帖子

780

积分

高级会员

Rank: 4

积分
780
金钱
721
HASS币
0
 楼主| 发表于 2023-7-21 22:00:49 | 显示全部楼层
本帖最后由 546485 于 2023-7-21 22:49 编辑
隔壁的王叔叔 发表于 2023-7-20 08:52
原理就是通过模板拿到下一级level的值,比较是不是发生了变化。

weather.tian_qi的状态
forecast_alert:
  status: ok
  content:
    - province: 广东省
      status: 预警中
      code: '0702'
      description: >-
        【禅城区高温黄色预警信号发布】佛山市气象台07月21日08时57分发布:预计未来5天禅城区最高气温将在35℃以上,禅城区高温黄色预警信号已经生效,请注意防暑降温。佛山市气象局禅城工作组
      regionId: ''
      county: 佛山市
      pubtimestamp: 1689901020
      latlon:
        - 23.021351
        - 113.121586
      city: 广东省
      alertId: '44060041600000_20230721085803'
      title: 佛山市气象台发布高温黄色预警[III级/较重]
      adcode: '440600'
      source: 国家预警信息发布中心
      location: 广东省佛山市
      request_status: ok     

       我是用彩云的天气数据,之前没发这数据出来,是因为是空的没数据,现在有数据了,麻烦这个怎样弄,按你修改的模板,填写进去不行。“【禅城区高温黄色预警信号发布】佛山市气象台07月21日08时57分发布:预计未来5天禅城区最高气温将在35℃以上,禅城区高温黄色预警信号已经生效,请注意防暑降温。佛山市气象局禅城工作组”,只要是监控这个数的变化,有变化是输出,我之前是监控forecast_alert这个,但这个数据极端天气一来,就重复报数,看下大佬怎样解决写自动化。以下我的自动化,看下怎样修改,我都是问bing的ai,他写的运行不了
alias: 天气预警2(语音提醒)
description: 使用彩云天气
trigger:
  - platform: state
    entity_id:
      - weather.tian_qi
    attribute: forecast_alert
condition: []
action:
  - service: tts.edge_tts_say
    data:
      cache: false
      entity_id: media_player.usb_audio
      message: >-
        {{ state_attr('weather.tian_qi',
        'forecast_alert')['content'][0]['description'] }}
    enabled: true
  - service: telegram_bot.send_message
    data:
      message: >-
        {{ state_attr('weather.tian_qi',
        'forecast_alert')['content'][0]['description'] }}
  - service: tts.edge_tts_say
    data:
      cache: false
      entity_id: media_player.usb_music
      message: >-
        {{ state_attr('weather.tian_qi',
        'forecast_alert')['content'][0]['description'] }}
    enabled: true
mode: single




回复

使用道具 举报

5

主题

59

帖子

780

积分

高级会员

Rank: 4

积分
780
金钱
721
HASS币
0
 楼主| 发表于 2023-7-21 23:07:10 | 显示全部楼层
546485 发表于 2023-7-21 22:00
weather.tian_qi的状态
forecast_alert:
  status: ok

已解决,换个创造力的AI就行了
屏幕截图 2023-07-21 230618.png
回复

使用道具 举报

10

主题

1388

帖子

4429

积分

论坛元老

Rank: 8Rank: 8

积分
4429
金钱
3041
HASS币
0
发表于 2023-7-22 20:41:18 | 显示全部楼层
恭喜你。。。。。。。
回复

使用道具 举报

45

主题

452

帖子

1643

积分

金牌会员

Rank: 6Rank: 6

积分
1643
金钱
1191
HASS币
0
发表于 2023-7-24 08:19:29 | 显示全部楼层

回帖奖励 +1 金钱

546485 发表于 2023-7-21 23:07
已解决,换个创造力的AI就行了

怎么接入bing机器人
回复

使用道具 举报

5

主题

59

帖子

780

积分

高级会员

Rank: 4

积分
780
金钱
721
HASS币
0
 楼主| 发表于 2023-7-24 12:01:01 | 显示全部楼层
shayulei 发表于 2023-7-24 08:19
怎么接入bing机器人

要用梯子,没梯子不行
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 19:11 , Processed in 1.196127 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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