实现通过小爱同学询问拓竹打印机打印时间

321 阅读4分钟

安装准备

  1. 一台Nas或者可以7*24小时长期运行可以安装Docker的电脑
  2. 小爱音箱
  3. 小米中枢网关

安装环境介绍

  1. 使用FnOS1.0
  2. Home Assistant版本2025.1
  3. HACS版本2.0.5
  4. 拓竹插件版本v2.2.13
  5. Xiaomi Home版本v0.4.4
  6. 实现自动化

1. 安装Home Assistant

在FnOS应用中心中直接搜索Home Assistant点击安装即可,截至到2025.11.24日无法安装最新的Bambu Lab插件,需要修改image镜像为2025.1版本或以上。安装完成后可以修改

docker.1ms.run/homeassistant/home-assistant:2025.1

使用Dokcer Compose安装或者修改之前安装的镜像版本号

services:
  homeassistant:
    container_name: homeassistant
    image: "docker.1ms.run/homeassistant/home-assistant:2025.1"
    volumes:
      - /var/apps/docker-home-assistantan/shares/home-assistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

2. 安装HACS插件商店

  1. 下载HACS安装包GitHub地址下载hacs.zip文件

  2. 点击文件管理➡应用文件➡HA的文件夹➡config➡创建custom_components文件夹

  3. 将下载下来的hacs文件直接解压到custom_components文件夹中

  4. 重启Home Assistant

  5. 点击设置,设备与服务,点击右下角的添加集成搜索HACS,全选所有选项

  6. 安装HACS需要验证Github账号,登录账号后把验证码输入后即可绑定HACS

安装HACS-1-20251124153552-1br71w5.png

2. 安装拓竹插件

拓竹插件GitHub地址

  1. 点击HACS搜索Bambu Lab,右下角直接点击安装
  2. 点击设置会看到Bambu Lab,重新载入一下即可
  3. 点击设置,设备与服务,点击右下角的添加集成搜索Bambu Lab
  4. 登录拓竹插件,使用云登录
  5. 重启

3. 安装Xiaomi Home

Xiaomi Home插件GitHub地址

  1. 点击HACS搜索Xiaomi Home,右下角直接点击安装
  2. 点击设置会看到Xiaomi Home,重新载入一下即可
  3. 点击设置,设备与服务,点击右下角的添加集成搜索Xiaomi Home
  4. 登录小米账号
  5. 重启

4. 实现自动化

4.1. 打印完成场景播报实现

  1. Home Assistant中点击设置
  2. 点击自动化与场景
  3. 右下角创建自动化
  4. 点击创建新的自动化
  5. 点击添加触发条件
  6. 点击设备
  7. 搜索打印机并选择,触发条件选择打印完成
  8. 点击添加动作
  9. 选择通知
  10. 选择发送通知消息
  11. 点击添加目标,搜索你想播报的小爱音箱播放文本
  12. 消息内容填写你需要播放的文本,例如:“主人,打印机已打印完成”
  13. 保存并退出

图片示例

创建HA打印完成提示自动化-1-20251124152737-hc0o11g.png

创建HA打印完成提示自动化-2-20251124153055-7dn8ew4.png

创建HA打印完成提示自动化-4-20251124153253-accx1ji.png

image-20251124153138-2g9wnlz.png

创建HA打印完成提示自动化-4-20251124153253-accx1ji.png

创建HA打印完成提示自动化-5-20251124153404-gwxy5yg.png

4.2. 播报自动化实现(需要小米中枢网关)

  1. 点击智能右上角加号选择手动控制

创建HA自动化询问小爱打印时间-1-20251124155145-xg6lqqr.png

  1. 选择中枢网关,产生虚拟事件,内容随意

创建HA自动化询问小爱打印时间网关版本-1-20251124160054-5vzav6b.png

  1. 点击米家➡找到要播报的小爱音箱➡点击更多操作➡在功能设置界面找到训练计划并点击➡选择个人训练➡添加一种说法比如“3D打印机剩余打印时间”➡点击添加操作➡选择设备控制➡选择刚刚创建的手动控制场景

创建HA自动化询问小爱打印时间-3-20251124155340-z1yg0qs.png

创建HA自动化询问小爱打印时间-4-20251124155352-arvjnze.png

创建HA自动化询问小爱打印时间-5-20251124155358-negjk83.png

  1. 在原来的自动化中,添加触发条件修改为实体状态

创建HA自动化询问小爱打印时间网关版本-2-20251124160127-2uegn5v.png

  1. 属性选择事件名称,变为输入刚刚创建手动自动化的内容即可

创建HA自动化询问小爱打印时间网关版本-3-20251124160134-d6zf6bq.png

  1. 我们先获取打印机的剩余时间

image-20251126021434-8victmf.png

  1. 我们把下面的脚本文件复制到需要发送的文本即可
{# 获取打印时间,来自 Home Assistant 传感器 #}
{% set total_hours = states('修改为自己的传感器参数') | float %}

{# 判断时间是否大于0,大于0再播报 #}
{% if total_hours > 0 %}

  {# 获取小时数 (整数部分) #}
  {% set hours = total_hours | int %}

  {# 获取分钟数 #}
  {% set minutes = ((total_hours - hours) * 60) | int %}

  {# 播报剩余时间 #}
  距离打印完成,还剩余{{ hours }}小时{% if minutes > 0 %}{{ minutes }}分钟{% endif %}。

  {# 计算预计完成时间:当前时间 + 剩余时间 #}
  {% set finish_time = now() + timedelta(hours=hours, minutes=minutes) %}

  {# 播报预计完成时间 #}
  预计完成时间,{{ finish_time.strftime('%m月 %d日 %H时 %M分') }}

{% else %}
  目前没有打印任务
{% endif %}

image-20251126021653-myvvcku.png

  1. 到第五步实际上已经操作完成,但是可能是小米HA的bug导致这个自动化无法稳定触发,我们需要在小米中枢网关中再发送一次事件

image-20251125154715-acob5b1.png

  1. 将HA监听的事件名称改为刚刚发送的名称”HA打印机时间获取“

image-20251125154856-1nbcpsf.png

现在所有的操作都执行完毕了,我们直接可以开始测试下是否能执行成功!