带有 AI 警报的 Home Assistant 中的 CalDAV 日历

今天我点赞的一篇帖子 :-), 我们将允许 Home Assistant 访问我们的日历, 无论我们给它什么用, Be Personal 日历, 企业, 约会, 圣人, 足球比赛… 然后我们将创建一些自动化, 为什么, 早上醒来时,告诉我们当天的约会,当然还有约会的时间, 提醒我们.

在本文档中,我们将为 Home Assistant 订阅我们已经拥有的一些日历, 在 CalDAV 服务器上, 我们看到了 一段时间前, 称为 Radicale; 我们当然可以为您订阅我们使用的任何其他日历服务. 一旦我们可以访问日历,我们将能够查看它们, 手动或使用自动化创建约会, 以及了解约会等. 我说了什么, 在文章的末尾,我们将看到一个自动化 5 在预约前几分钟,他会通过智能家居扬声器提醒我们, 也是以随机的方式, 由于我们将使用 Ollama 的 AI 对消息进行个性化设置,以便它们每次都不同. 以及第二天早上我们到达厨房时, 除了每天都以不同的方式说早安, 提醒我们白天的约会, 瑰 🙂

在 Home Assistant,我们将 “设置” > “设备和服务”, 并单击 “+ 添加集成”, 我们正在寻找 CAlDAV, 我们点击它.

它会要求我们提供日历的 CalDAV URL, 以及能够访问它的凭据, 点击 “发送”,

完善, 点击 “完成”,

注册后,我们会将它们视为实体,

此外,我们还将从左侧菜单中查看日历,

我们将考虑到日历是同步的 15 纪要, 如果我们想要强制同步, 尤其是现在做一些测试, 好吧,我们将转到 “开发人员工具” 和 从 “服务业”, 我们正在寻找 'Home Assistant 矿石集成服务': 重新加载配置条目’ 在对象中,我们选择我们有兴趣刷新的日历, 如果我们添加任何报价…

Automation 通知您即将发生的事件

这是一个自动化功能,如果 5 纪要, 在这种情况下,AI 将发挥作用并发送一条随机消息,告诉我们我们有这样的约会,我们不会忘记它, 每次都以不同的方式使用,并且不使用重复的短语.

在自动化中, 在 When, 我们将选择我们感兴趣的日历对象, 表示它位于事件的开头,并使用 5 提前几分钟, 这就是这种自动化的跳跃方式.

他将如何行动, 嗯,有几件事, 一方面,它会向 Ollama 的 AI 发送我们想要的提示, 那是, 善良, 提醒您 (在这种情况下) 给有约会的赫克托, 在 5 纪要.

元数据: {}
日期:
  agent_id: xxxxxxxxxxxxxxx: >-
    请, 为将发送到用户智能手机的通知生成文本. 您是一个有用的个人代理,可为用户生成文本. 您的回答很有帮助, 类, 温暖, 深刻. 您的答案不是技术性的. 您必须报告的消息是: 那个 Hector 在 里面的日历上有一个约会 5 纪要.  事件是 {{
    trigger.calendar_event.摘要 }}.
response_variable: 已启用响应: 真实操作: conversation.process

处理的第一个操作将询问 AI 并在一个变量中获得答案.

元数据: {}
日期:
  缓存: true media_player_entity_id: media_player.volumio_mpd 消息: "{{ 响应.speech.plain.speech }}"
目标:
  entity_id: tts.piper 操作: tts.speak

在友好的警报响起后,家里的扬声器, Piper 将负责通过扬声器将变量的文本转换为几乎是人的声音.

自动化读取每日报价

我使用其他自动化功能来迎接我们的家, 这取决于谁先到达厨房, 好吧,除了问候您并告诉您一些您可能感兴趣的信息, 因为我们为您阅读日历上全天的约会, 一如既往地每天用 AI 随机表示句子.

日期:
  start_date_time: "{{ today_at('00:00').strftime('%Y-%m-%d %H:%M:%S') }}"
  end_date_time: "{{ today_at('23:59').strftime('%Y-%m-%d %H:%M:%S') }}"
目标:
  entity_id:
    - calendar.calendario_hector_personal response_variable: my_agenda_hector 操作: calendar.get_events

我们将创建第一个操作,该操作将读取指定日历中的所有事件, 当时; 它会将它们放在一个变量中.

日期:
  agent_id: 491350952DA2D957EBC0EB37DA8C24A2文本: >-
    请, 为将发送到用户智能手机的通知生成文本. 您是一个有用的个人代理,可为用户生成文本. 您的回答很有帮助, 类, 温暖, 深刻. 您的答案不是技术性的, 你不需要说你好. 你得记住赫克托今天在日历上的约会, 它们是什么:

        {%- 如果 my_agenda_hector['calendar.calendario_hector_personal'].事件  %}
      {%- 对于 my_agenda_hector 中的 event['calendar.calendario_hector_personal'].事件 %}
        {{ 事件摘要 }} {% 如果定义了 event.start %} 在 {{ as_timestamp(事件开始)|timestamp_custom('%H:%M',真)}}
        {% 还 %} 整天
        {% Endif (结束) %}
          {%- 如果定义了 event.descripton %} - {{ event.description }} 详: {{ event.descript上 }}
        {% 差异 %}          
        {%- 如果定义了 event.location %} 在 {{event.location }} 
        {% Endif (结束) -%} <BR> 
      {%- 结束 %}     
    {%- 还 %} 今天的日历上没有约会。{%- Endif (结束) %}

    从最新到最近排序. 不要使用双引号. 您的西班牙语答案.
response_variable: 操作响应: conversation.process

随后,第二个服务将从变量中获取这些数据,我们会将其传递给 Ollama 的 AI,以便它可以解释和读取这些数据, 给我们做一个总结,随机告诉我们当天发生的事情.

元数据: {}
日期:
  缓存: true media_player_entity_id: media_player.volumio_mpd 消息: "{{ 响应.speech.plain.speech }}"
目标:
  entity_id: 已启用 tts.piper: 真实操作: tts.speak

最后, 第三个操作将获取 AI 生成的文本并将其转换为音频, 用人声, 并在家中的所有扬声器上播放.

我希望你喜欢它, 一篇关于如何赋予家居更多智能并形成的有点奇怪的帖子, 这篇文章是一个日历的例子, 但是,如果您考虑一下,您肯定可以将这些自动化用于其他事情, 我给你一些想法😉,我给你一个拥抱, 举止端正,照顾好自己!

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!

Citrix 上的新团队

24 九月 2024