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

 找回密码
 立即注册
查看: 119605|回复: 291

[经验分享] 小米网关整点报时自动化

  [复制链接]

7

主题

109

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
金钱
1673
HASS币
0
发表于 2017-12-18 02:11:23 | 显示全部楼层 |阅读模式
本帖最后由 不达目 于 2019-6-11 11:21 编辑

前几天读到几位高人写的关于报时自动化的帖子,感觉很实用,就修改后在Sonos Play:1上用来报时。用了一阵子后,发现一个问题,就是音箱正在播放音乐的时候,如果刚好遇到整点,音乐会停下,等报时结束后,刚才正在播放的音乐却不会恢复,有些不方便。(这个问题已经解决,见我的这个帖子
于是考虑是否可以利用其他设备进行整点报时,就想到了小米网关。我用的是小米网关2,可以上传自定义音频文件在网关上播放,那报时自然也不在话下。通过半天折腾,终于实现了这个功能。具体步骤如下:

1. 准备报时音频文件
这里利用h大发的布谷鸟报时音频文件来做。只不过要将文件转换成mp3格式。附件中是格式已转换好的文件。
准备一台安装有米家app的安卓设备,将音频文件放入存储下的Music文件夹。如果用自己准备的音频,请使用软件(如Adobe Audition)将mp3文件设置成如下参数并保存:比特率96Kbps,采样率44100Hz,位深度16位。如音频文件参数有误,可以会出现播放不正常的情况,如出现“吱”的一声,或声音变调。

2. 上传音频文件到小米网关
在米家app中进入“多功能网关”,点击顶上的“设备”,再点击“多功能网关”,找到“铃音设置”,如下图:
xg001.jpg
选一个音频类型点进去,最底下有“添加铃音”选项,如下图:
xg002.jpg


选择“手机音乐”,如下图:
xg003.jpg

如果刚才第1步中音频文件放置在正确的Music文件夹中,这时就能看到音频文件了。
重点来了:上传文件时,一定要按文件名的顺序一个一个上传,从01开始到12为止。同一个文件也不要重复上传。
如果上传顺序乱了,或有重复的文件,后面的设置就会非常非常麻烦,切记切记。

如果你不想让布谷鸟几点钟叫几声(叫了几声确实数不过来,也不会去数),也可以只上传其中一个文件,比如2点钟的音频。这样的话,每个整点都叫两声,我试过,效果也很不错。请注意,不要上传大量音频文件,如果分配给上传文件的空间用尽,再上传新的文件时,可能会产生覆盖已有文件的情况,从而导致数据丢失。

3. 建立自动化
先放代码:
游客,如果您要查看本帖隐藏内容请回复


红色部分需要自行修改。一个一个来分析:
1. 如果没有device_tracker,务必把condition中的红色部分删去。
2. gw_mac为你的小米网关mac地址。
3. 10007是什么?这涉及到小米网关自定义铃音id。
具体请参考HA官网中小米网关的文档,找到关于ringtone_id的部分。点击这里查看
自己上传到小米网关的音频文件,id是从10001开始的。如果以前从来没上传过音频,那就好办了。1点钟的铃音id就是10001,2点钟就是10002,以此类推。但如果以前曾经上传过,即使现在删除了,音频的id也会被保留下来。你再上传文件,id就不是从10001开始了。
那怎么知道报时音频文件的id是从多少开始的呢?我也没找到好办法,只好在自动化里一次一次改着试试,在这一步浪费了不少时间。
12小时制的情况下,如果1点钟的铃音id是10008,ringtone_id就写成{{now().strftime("%I") | int + 10007}},这里的10007,代表以前曾经上传过7个文件。按顺序,2点钟的id是10009,3点钟是10010……
如果上传时出现错乱,就没法用这条代码了。这就是上面提到上传音频文件要仔细的原因。
如果要用24小时制的报时语音,就改成{{now().hour + 10008}},10008代表0点的报时音频文件。
如果每个整点报时都想让布谷鸟一样地叫两声,而不区分几点钟,ringtone_id这部分可以简单地写成:ringtone_id: 10009
ringtone_vol是音量,10代表10%的音量。
如果要让某个特定的整点或某个时间段的整点报时音量与平时不同,rington_vol可以写成:
      ringtone_vol: >
       {% if now().hour == 23 %}
       5
       {% elif now().hour < 9 %}
       2
       {% else %}
       10
       {% endif %}
表示23点报时音量为5,0点-8点这段时间音量为2,其余的整点报时音量为10。

以上就是利用小米网关2的语音功能建立整点报时自动化的方法。在这里抛砖引玉,欢迎大家一起来做改进优化。







cuckoo.zip

3.49 MB, 下载次数: 299

报时音频文件

评分

参与人数 2金钱 +14 收起 理由
windgo + 7 膜拜大神!
zorankeinfo + 7 谢谢分享!

查看全部评分

回复

使用道具 举报

14

主题

184

帖子

1701

积分

金牌会员

Rank: 6Rank: 6

积分
1701
金钱
1517
HASS币
0
发表于 2017-12-18 17:41:49 | 显示全部楼层
感谢大神的教程,回家试试。
回复

使用道具 举报

4

主题

192

帖子

1576

积分

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1384
HASS币
0
发表于 2017-12-19 04:24:57 | 显示全部楼层
我好像回复过一次,没了
回复

使用道具 举报

11

主题

337

帖子

1390

积分

金牌会员

iLee

Rank: 6Rank: 6

积分
1390
金钱
1052
HASS币
0
发表于 2017-12-19 08:53:46 | 显示全部楼层
群名叫iLee
GitHub叫ileez
Docker Hub叫zlee

这么多名字都是被逼的。。。
回复

使用道具 举报

3

主题

343

帖子

1598

积分

严重灌水用户

积分
1598
金钱
1254
HASS币
0
发表于 2017-12-19 13:05:48 | 显示全部楼层
谢谢分享
回复

使用道具 举报

8

主题

60

帖子

130

积分

注册会员

Rank: 2

积分
130
金钱
70
HASS币
0
发表于 2017-12-19 15:03:28 | 显示全部楼层
看看不会怀孕的
回复

使用道具 举报

3

主题

171

帖子

2427

积分

金牌会员

Rank: 6Rank: 6

积分
2427
金钱
2256
HASS币
0
发表于 2017-12-19 15:14:01 | 显示全部楼层
谢谢分享
回复

使用道具 举报

1

主题

143

帖子

3664

积分

论坛元老

Rank: 8Rank: 8

积分
3664
金钱
3521
HASS币
0
发表于 2017-12-19 16:43:46 | 显示全部楼层
学习!!!
回复

使用道具 举报

27

主题

558

帖子

4378

积分

论坛元老

Rank: 8Rank: 8

积分
4378
金钱
3820
HASS币
0
发表于 2017-12-21 19:44:56 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
发表于 2017-12-22 13:49:18 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 05:20 , Processed in 0.063522 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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