
小爱音箱控制家里的NAS将影片在电视上播放-deepseek帮助下实现-慎入openmanux
我给ai一个任务,不过我没那么多能力,听说AI代理很行,这个任务我打算交给它.就用现在火的,openmanu,功能简单,我来安装openmanus,并规划任务.进入openmanu首页openusa推荐使用uv管理,打算安装在家里的nas虚拟机.uv和python环境,linux下会顺畅一些,看情况会打开一个web端.下面不说manus怎么用,说下我的任务框架.
天始规划
我给ai一个任务,不过我没那么多能力,听说AI代理很行,这个任务我打算交给它.就用现在火的,openmanu,功能简单,我来安装openmanus,并规划任务.
进入openmanu首页
https://github.com/wjcroom/OpenManus
openusa推荐使用uv管理,打算安装在家里的nas虚拟机.uv和python环境,linux下会顺畅一些,看情况会打开一个web端.
下面不说manus怎么用,说下我的任务框架.
总目标
小爱音箱控制家里的NAS将影片在电视上播放
github设立一个开源项目在仿照xiaomusic实现此功能
同网段有设备
- 小爱音箱可选xiaomusic,插件控制方式,推荐独立开源一个项目,实现本功能,
- 群晖共享的视频资源, 打算用Alist管理,可选网络共享FTP,或者VideoStation,也可以是电脑主机共享,视频本地文件,需要实现发布资源方式.
- 电视机安卓的作为可控制播放端,可远程adb, 文档管理和TVBOX的工具,airplay或者dlna可以用指令控制,播放指定文件,也可以推送过来.
具体实现路径
- 语音控制播放单个音频文件用于测试播放方式
- 加强本地播放方式,支持搜索,模糊搜素,推荐三个结果,选择一个,
- 加入收藏,虽然对应电影来说,有点多余
- 语音控制tvbox工具,搜素某个内容,显示结果就可.
其他建议
好像tvbox就支持web控制的推送,用adb启动tvbox, 用python aiohttp发送本地播放远程文件指令.
资源内网共享是个需要考虑的问题
可以借用tvbox的搜索引擎,语音控制全网搜索播放内容.
项目管理
对github不太熟悉,希望前期达到以下目的对于 openmaus的fork
- 一,本人的fork要定期同步根项目的更新,这需要我介入吗?
- 本地部署要随时更新同步本人的在线仓库,遇到稳定的更改要commit到本人的仓库.
开始步骤
在openmanus的帮助下,开始一个新github仓库,建立起一个框架,调试以上的功能
天末总结:
经过一个的折腾汇总如下信息,
HA 在docket里network从host运行,是可以完成以上所有功能的,前提要准备梯子.
版本
Home Assistant
Core
2025.3.2
Frontend
20250306.0 ⸱ legacy
Xiaomi Miot Auto
1.013
设备信息
xiaomi.wifispeaker.lx06
制造商:xiaomi
固件:1.88.205
这就足够了,
这里的图片足够多,说明了语音接入和语音播放的设置
我想说的是,弄好梯子,安装Xiaomi Miot Auto
1.013
通过SSH或Terminal & SSH加载项运行以下命令(若下载缓慢可替换为加速链接):
wget -q -O - https://raw.githubusercontent.com/al-one/hass-xiaomi-miot/master/insta
重启Home Assistant
安装完成后重启HA,使插件生效6。
配置Xiaomi Miot Auto集成
在HA的「配置」→「设备与服务」→「添加集成」中搜索「Xiaomi Miot Auto」,输入小米账号(需家庭创建者权限)并选择需接入的设备25。
语音足够控制播放了,在ha的自动化加入,指令就OK了
3.14日更新些点滴
最后说下openmanus,在微信里ai问了一下,说得很详细. 手痒又试用了一下. 结果查硅基的试用情况. 两次,两天,大约用了100万token. 我眼看着几分钟,1万的往上长. 本来想从deepseek,切换到Qwen/qwq-32.呢.现在还是算了.我给mi-GPT,弄个豆包或者kimi吧,起码他们是很快的.
现在鼓捣HomeAssistant,已经可以很方便,语音播放视频了,加入了孩子最爱的记录片之一.随时可看了,
3.21日
另一个比较同名文章定义了一个完整的架构和格式
小爱音箱轻松播放NAS电影搭配HomeAssistant
也算是对这个步骤的完善,由于结果只能存在一个,这对系列电影和电视剧是个挑战.对于语音控制来说,二次输入对应homeassistant来说,有点难度, 二次获取以超时等待为逻辑基础. 似乎无法跨会话适时处理.
折中方案,可能是弹出一个, 多项列表的网页,.然后 声控第几项,或者,播出候选项内容.
因为jinjia2的模板语法, 变量作用域, 不适应这种复杂逻辑, 所以我选择一个系列,标准1,2,3尾号的方法,同时这也适用电视剧.
我原来有个系列电视剧.结构是 “第n集”,现在文件名要改为"剧名n",我把要求提交给kimi,给出的代码,太丑,然后提交给百度的deepseec, 真的很惊艳.为国产AI点赞
import os
import re
# 设置目标目录路径(默认当前目录)
directory = './'
for filename in os.listdir(directory):
# 匹配以"第"开头、数字、以"集"结尾的模式,并保留扩展名
new_name = re.sub(r'^第(\d+)集', lambda m: m.group(1), filename)
if new_name != filename:
src = os.path.join(directory, filename) # 原文件完整路径
dst = os.path.join(directory, new_name) # 新文件完整路径
# 执行重命名(建议先测试打印)
os.rename(src, dst)
print(f'已重命名:{filename} -> {new_name}')
然后在处理 小爱的语音指令时
action: shell_command.fdme
metadata: {}
data:
name: >-
{{ state_attr('sensor.xiaomi_lx06_b0e7_conversation',
'content').replace('搜电视','')[:-2]~state_attr('sensor.xiaomi_lx06_b0e7_conversation',
'content').replace('搜电视','')[-2:].replace('一','1').replace('二','2').replace('三','3').replace('四','4').replace('五','5') .replace('六','6') .replace('七','7') .replace('八','8') .replace('九','9') .replace('零','0') }}
response_variable: stdout
总的执行流程中一部分(全部的在上面的homeassistant文章中),这里的是补丁
如此,想看什么只要语音发送. 搜电视布鲁伊34,就可用打开了.
output
更多推荐
所有评论(0)