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

 找回密码
 立即注册
查看: 51526|回复: 80

[基础教程] 【挖掘空调伴侣】 通过HASS控制广播、播放铃声、输出TTS

  [复制链接]

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
发表于 2018-8-15 14:58:58 | 显示全部楼层 |阅读模式
本帖最后由 yunsean 于 2019-11-23 12:55 编辑

更新于2019-11-23:针对新版本hass(v0.99)无法使用的修改:
将压缩包解压 custom_components.zip (12.04 KB, 下载次数: 42) ,将其中的miio_acpartner和xiaomi_ac_radio拷贝到hass配置文件的custom_components下
QQ20191123-124929.png
然后配置文件参考:
miio_acpartner:
  - platform: xiaomi_ac_radio
    host: 192.168.2.238
    token: 2d8e5138e3a79e89e81ee02a25c954b8
    name: YOUR_TOKEN
    api_key: "YOUR_BAIDU_TTS_API_KEY"
    secret_key: "Your_BAIDU_TTS_SECRET_KEY"
    base_url: "http://192.168.2.249:8123"
    base_path: "C:\\Users\\Dylan\\AppData\\Roaming\\.homeassistant"
    notify: true

相比之前的老版本变化就是platform名称改了,其他参数可以直接复用,注意路径,base_url是你内网中通过http访问hass服务器的路径(只能是http),base_path是hass的配置根目录,在这下边应该会有一个www文件夹,如果没有就创建一个,如上图,这个插件会在该目录下创建一个wav文件和一个aac文件,wav文件是百度tts生成的,然后通过ffmpeg转换为aac后,让空调伴侣通过base_url的方式下载后播放出来。
如果有问题,加群:

                               
登录/注册后可看大图

比猪只有空调伴侣,圆的方的都可以正常工作,网关就不知道了。
如果之前hass升级到0.8x无法使用的童鞋可以试一试这个新版本。


更新于2018-8-18:解决在所有收藏的电台中进行上一下一台播放的问题以及针对APP的频道列表格式
另外,可以下载APP来更好的进行收音机控制:
(底部图标为你在米家收藏的电台列表,目前只能播放米家收藏过的电台)
WechatIMG677.jpeg
https://www.pgyer.com/ihass

喜马拉雅频道ID的获取方式:
国家台
http://live.ximalaya.com/live-web/v2/radio/national?pageNum=1&pageSize=200
地方台
http://live.ximalaya.com/live-web/v2/radio/province?pageNum=1&pageSize=200&provinceCode=110000
网络台
http://live.ximalaya.com/live-web/v2/radio/network?pageNum=1&pageSize=20
分类
    新闻台
        http://live.ximalaya.com/live-web/v2/radio/category?categoryId=5&pageNum=1&pageSize=20
    音乐台
        http://live.ximalaya.com/live-web/v2/radio/category?categoryId=14&pageNum=1&pageSize=20
    交通台
        http://live.ximalaya.com/live-web/v2/radio/category?categoryId=1&pageNum=1&pageSize=20

分类列表获取方式
http://live.ximalaya.com/live-web/v5/homepage

BUT:好像有加密授权,如果这个ID没有在网关上播放过(通过米家选择播放),设置进去并无法播放。有谁弄过喜马拉雅授权的不?

# miio_acpartner
小米空调伴侣杂项功能,包含收音机控制、铃声控制以及作为TTS使用,同样适用于小米网关
https://github.com/yunsean/miio_acpartner

部署:
将下载得到的miio_acpartner目录(最底层miio_acpartner目录,不是最顶层哦,就是和README平级的那个目录),放到python的python的home assitant组件目录下,比如windows下的目录可能在: C:\Users\Dylan\AppData\Local\Programs\Python\Python36\Lib\site-packages\homeassistant\components (注意你安装python版本可能与此不同,建议通过搜索site-packages并定位到homeassistant\components下)

设备配置:
miio_acpartner:
  - platform: xiaomi_miio
    name: "ChildrenRoom"
    host: 192.168.2.238
    token: YOUR_TOKEN
    api_key: "YOUR_BAIDU_TTS_API_KEY"
    secret_key: "Your_BAIDU_TTS_SECRET_KEY"
    base_url: "http://192.168.2.249:8123"
    base_path: "C:\\Users\\Dylan\\AppData\\Roaming\\.homeassistant"
    notify: true
    speed: 5
    pitch: 5
    volume: 5
    person: 0

name host token为miio设备固有配置,请参考空调伴侣网关等基本设置方法
api_key secret_key 为百度TTS开放服务为你提供的相关信息,如果你不使用TTS功能,这俩配置可以不要
base_url base_path 为你的home assistant环境信息
        base_url 为你的home assistant在内网的访问基础地址(后边不需要斜杠哦)
        base_path 为你的home assistant配置所在的目录,请在该目录下创建www文件夹,并且给予可写权限
notify 由于TTS使用时,ffmpeg感觉不是很稳定,有时候tts会失败,所以增加此选项,当开启后,tts和vod成功后,会在hass的notification中暂时结果(失败就没有)。
speed 语速:默认=5 取值范围 0-9
pitch 语调:默认=5 取值范围 0-9
volume 音量:默认=5 取值范围 0-9
person 人声:默认=0 person = 0  男声 person = 1 女声 person = 3 男娃娃 person = 4 女娃娃

提供如下服务:
miio_acpartner.turn_on
  打开广播
  指定entity_id为打开指定空调伴侣的广播,不指定则打开所配置的所有radio组件对应的设备广播
miio_acpartner.turn_off
  关闭广播
  指定entity_id为关闭指定空调伴侣的广播,不指定则关闭所配置的所有radio组件对应的设备广播
miio_acpartner.toggle
  切换打开关闭状态
  entity_id用途与上述两个方式一致
miio_acpartner.set_volume
  设置音量
  entity_id用途与上述两个方式一致
  volume为音量值0-100
  {
    "entity_id": "radio.childrenroom_fm",
    "volume": 100
  }
miio_acpartner.next_radio
  播放下一个收藏频道【当前只能在频道编号最低的10个频道中循环】
  entity_id用途与上述两个方式一致
miio_acpartner.prev_radio
  播放上一个收藏频道【当前只能在频道编号最低的10个频道中循环】
  entity_id用途与上述两个方式一致   
miio_acpartner.play_radio
  播放指定频道
  entity_id用途与上述两个方式一致
  program_id为需要播放的频带ID
  {
    "entity_id": "radio.childrenroom_fm",
    "program_id": 1739
  }
频道ID的获取方式:
  1、通过米家APP播放你想播放的电台
  2、通过home assitant的states接口或者网站的states页面(左侧“开发者工具”下方有一对尖括号图标那个),找到你的设备,右侧中可以看到channel,后边有形如:
          space_free: 11638627
        channel: 1739
        volume: 100
  其中channel就是当前正在播放节目的program_id,后续使用该数字即可播放指定电台。
miio_acpartner.play_ringtone
  播放指定铃声
  entity_id用途与上述两个方式一致
  ringtone_id为需要播放的铃声ID
  volume播放铃声音量,默认为上次音量
铃声ID的获取方式:
  通过home assitant的states接口或者网站的states页面(左侧“开发者工具”下方有一对尖括号图标那个),找到你的设备,右侧中可以看到ringtones,里面分三种铃声:
          alarm        报警铃声
          clock        闹铃
          doorbell        门铃
  无论哪种铃声,使用list下的index作为ringtone_id即可
miio_acpartner.play_tts
  TTS输出
  entity_id 用途与上述两个方式一致
  message 需要播放的文字内容
  volume 播放音量,默认为上次音量  
  此功能需要百度TTS以及ffmpeg的支持
miio_acpartner.play_vod
  播放指定音频流
  entity_id 用途与上述两个方式一致
  url 需要播放的音频流地址(http格式的纯音频流)
  volume 播放音量,默认为上次音量   

特别说明:
  play_tts和play_vod需要三项配置支持:
  1、home assistant的http服务支持:需要在配置文件所在目录下创建www文件夹,并且保证该目录权限可写,具体可参考:https://www.home-assistant.io/components/http/ ,页面最下部分:Hosting files
  2、ffmpeg支持,具体参考:https://www.home-assistant.io/components/ffmpeg/
  3、百度tts支持,可参考网页帖子:https://bbs.hassbian.com/forum.p ... 7%99%BE%E5%BA%A6tts ,不可谓不深情并茂。

玩法参考:
  1、天猫精灵这个蠢货,目前还没有发现通过API控制音量和暂停的手段,可以通过空调伴侣间接控制天猫精灵(附件带了三个文件,可以通过米家上传为自定义铃声后,通过在特定场景播放指定铃声完成对猫精的控制);
  2、使用网关和空调伴侣的朋友,免费多了几个TTS设备(虽然空调伴侣的声音又小又渣,聊胜于无);
  3、可以自行搭建一个http服务器,通过APP的方式,将手机录音上传到服务器后,然后使用play_vod将上传的录音通过空调伴侣或者网关播放出来,实现远程喊话;
  4、一个可以上一台下一台选取的收音机(目前只能在program_id最低的10个收藏台中循环),APP正在开发专用收音机面板,欢迎关注https://bbs.hassbian.com/thread-4403-1-1.html

TTS失败可能性比较大,所以贴一张原理图,遇到问题请尝试自行解决,可以QQ[qq]64266424[/qq]
绘图1.png

评分

参与人数 2金钱 +30 收起 理由
windgo + 10 膜拜大神!
+ 20 厉害了,竟然被楼主给实现了!有空学习下代.

查看全部评分

回复

使用道具 举报

8

主题

229

帖子

1994

积分

金牌会员

Rank: 6Rank: 6

积分
1994
金钱
1765
HASS币
0
发表于 2020-10-24 19:30:31 | 显示全部楼层
APP图标上的五个数字是?
回复

使用道具 举报

1

主题

91

帖子

738

积分

高级会员

Rank: 4

积分
738
金钱
647
HASS币
0
发表于 2020-5-14 20:45:06 | 显示全部楼层
感谢楼主
回复

使用道具 举报

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
 楼主| 发表于 2020-3-27 13:46:09 | 显示全部楼层
yonghengdeshang 发表于 2020-3-26 21:19
这个还能用么?配置不成功

能用,新版本要改一下,可以群里说
回复

使用道具 举报

1

主题

220

帖子

865

积分

高级会员

Rank: 4

积分
865
金钱
645
HASS币
0
发表于 2020-3-26 21:19:23 | 显示全部楼层
这个还能用么?配置不成功
回复

使用道具 举报

0

主题

85

帖子

328

积分

中级会员

Rank: 3Rank: 3

积分
328
金钱
243
HASS币
0
发表于 2019-9-22 11:38:34 | 显示全部楼层
竟然看不见
回复

使用道具 举报

74

主题

1942

帖子

7885

积分

元老级技术达人

积分
7885
金钱
5893
HASS币
430

活跃会员教程狂人

发表于 2019-4-6 21:09:30 | 显示全部楼层
大佬这个插件现在是停止更新了么?
所有过往,皆为序章。
回复

使用道具 举报

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
 楼主| 发表于 2019-1-31 14:12:00 | 显示全部楼层
xiaoguaileo 发表于 2019-1-24 10:57
0.85.1版本报错
2019-01-24 11:03:03 WARNING (MainThread) [homeassistant.components.http] legacy_api_p ...

位置没对吧
回复

使用道具 举报

3

主题

207

帖子

969

积分

高级会员

Rank: 4

积分
969
金钱
762
HASS币
0
发表于 2019-1-24 10:57:19 | 显示全部楼层
0.85.1版本报错
2019-01-24 11:03:03 WARNING (MainThread) [homeassistant.components.http] legacy_api_password support has been enabled. If you don't require it, remove the 'api_password' from your http config.
2019-01-24 11:03:04 WARNING (MainThread) [homeassistant.loader] You are using a custom component for sensor.chineseholiday which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-01-24 11:03:04 WARNING (MainThread) [homeassistant.loader] You are using a custom component for climate.xiaomi_miio which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-01-24 11:03:05 WARNING (MainThread) [homeassistant.loader] You are using a custom component for cover.hassmart which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-01-24 11:03:05 ERROR (MainThread) [homeassistant.loader] Unable to find component miio_acpartner
2019-01-24 11:03:05 ERROR (MainThread) [homeassistant.setup] Setup failed for miio_acpartner: Component not found.
2019-01-24 11:03:05 ERROR (MainThread) [homeassistant.setup] Error during setup of component zeroconf
回复

使用道具 举报

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
 楼主| 发表于 2018-12-20 20:22:19 | 显示全部楼层
evil 发表于 2018-12-20 18:37
关于群晖中docker如何使用这个组件的问题

首先感谢大神的远程帮忙!非常感谢!

恩,都映射到这个路径即可。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 21:12 , Processed in 0.064675 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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