请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 636|回复: 27

[插件发布] 分享HomeAssistant若琪webhook组件,实现tts,audio,asr服务调用

[复制链接]

2

主题

37

帖子

264

积分

论坛技术达人

积分
264
金钱
217
HASS币
40
发表于 2019-5-18 16:58:49 | 显示全部楼层 |阅读模式
本帖最后由 hassio-newbie 于 2019-5-22 09:03 编辑

HomeAssistant 最近更新频繁,好像从0.88开始引入了比较大的变化,针对自定义组件的目录结构和服务描述文件都有了一定的规范。
我顺手一点,升级到了最新版(0.93),发现很多组件用不了了,于是决定刚好重写一个若琪webhook组件。

项目地址: https://github.com/jihao/rokid-webhook-hass

如有问题,欢迎提issue~


rokid_webhook
Rokid (若琪) webhook home assistant component.
在home assistant中使用服务调用若琪webhook实现tts播报, 播放音乐流媒体文件, 执行asr指令。
安装
  • 将 rokid_webhook 目录保存到 config/custom_components/

  • 支持 custome_updater


custom_updater:
  track:
    - cards
    - components
  component_urls:
    - https://raw.githubusercontent.co ... /rokid_webhook.json

配置
  • 在 configuration.yaml 中添加

   rokid_webhook:   
         webhook_id: 'YOUR WEBHOOK ID'  
可选参数:
    sn:     
    roomName:   
    tag:   
    isAll: False  

2. 重启 home assistant

使用
  • 在界面上使用服务工具调试
  • 在自动化或者脚本里面调用


  • rokid_webhook.tts

+ 服务调用时如果指定可选参数,将覆盖configuration.yaml里的默认配置。

例子: {"message":"Hello 主人", "webhook_id":"your_overwrite_id", "sn":"device_sn", "roomName":"客厅"}

参数类型描述示例
message必选播报内容Hello 主人
webhook_id可选Webhook地址的标识your_very_unique_token
sn可选若琪序列号device_sn
roomName可选若琪所处的房间客厅
tag可选设备标签TAG_A
isAll可选选择所有设备,默认 falsetrue


  • rokid_webhook.audio

参数类型描述示例
message必选音频地址http://HASSIO_IP:8123/local/audio.mp3
所有可选参数同上


  • rokid_webhook.asr

    参数类型描述示例
    message必选语音控制指令今天天气怎么样
    所有可选参数同上


service: rokid_webhook.tts
data:
  message: 'hello 主人'

service: rokid_webhook.audio
data:
  message: 'http://HASSIO_IP:8123/local/audio.mp3'

service: rokid_webhook.asr
data:
  message: '明天天气怎么样'

参考


欢迎大家关注我的公众号 “Jarvis诞生记”,有一些智能家居DIY方面的技术干货文章。 qrcode_for_gh_1788fb811b44_430.jpg

~谢谢~






评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
Jones + 20 + 20 膜拜大神!

查看全部评分

回复

使用道具 举报

2

主题

529

帖子

2147

积分

金牌会员

Rank: 6Rank: 6

积分
2147
金钱
1618
HASS币
85
发表于 2019-5-18 17:15:59 | 显示全部楼层
主樓厲害啦~~!
回复

使用道具 举报

7

主题

572

帖子

2269

积分

金牌会员

Rank: 6Rank: 6

积分
2269
金钱
1697
HASS币
87
发表于 2019-5-18 17:26:40 | 显示全部楼层
这个方便了,支持楼主.
回复

使用道具 举报

30

主题

968

帖子

3625

积分

论坛元老

Rank: 8Rank: 8

积分
3625
金钱
2652
HASS币
0

活跃会员

发表于 2019-5-18 22:02:55 | 显示全部楼层
终于等到你了,谢谢分享!
回复

使用道具 举报

30

主题

968

帖子

3625

积分

论坛元老

Rank: 8Rank: 8

积分
3625
金钱
2652
HASS币
0

活跃会员

发表于 2019-5-18 22:24:38 | 显示全部楼层
还想问下能否支持多台若琪?配置要怎么写?
回复

使用道具 举报

22

主题

201

帖子

741

积分

高级会员

Rank: 4

积分
741
金钱
540
HASS币
0
发表于 2019-5-19 00:11:53 | 显示全部楼层
辛苦楼主
回复

使用道具 举报

2

主题

37

帖子

264

积分

论坛技术达人

积分
264
金钱
217
HASS币
40
 楼主| 发表于 2019-5-19 11:22:27 | 显示全部楼层
wqqs 发表于 2019-5-18 22:24
还想问下能否支持多台若琪?配置要怎么写?

通过配置tag或者roomName可以让多台若琪同时执行同一个命令,但是目前同一个configuration的配置不能指定不同的若琪分别执行不同的webhook。

当然技术上是可以做的,我考虑可能多个若琪的场景不多,为了简化调用参数,用了目前的实现方式。
回复

使用道具 举报

2

主题

37

帖子

264

积分

论坛技术达人

积分
264
金钱
217
HASS币
40
 楼主| 发表于 2019-5-19 11:34:00 | 显示全部楼层
hassio-newbie 发表于 2019-5-19 11:22
通过配置tag或者roomName可以让多台若琪同时执行同一个命令,但是目前同一个configuration的配置不能指定 ...

想了一下,要支持发送给任意的设备也很容易,调用service的时候,加上 webhookID, sn 或者 roomName 或者 tag就行,我一会儿改一下代码就能支持了
回复

使用道具 举报

104

主题

3410

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
10985
金钱
7495
HASS币
44
发表于 2019-5-19 15:48:48 | 显示全部楼层
hassio-newbie 发表于 2019-5-19 11:34
想了一下,要支持发送给任意的设备也很容易,调用service的时候,加上 webhookID, sn 或者 roomName 或者 ...

厉害了楼主!请问这个asr是不是相当于问若琪的话?然后调用以后若琪会回复?
回复

使用道具 举报

2

主题

37

帖子

264

积分

论坛技术达人

积分
264
金钱
217
HASS币
40
 楼主| 发表于 2019-5-19 18:06:06 | 显示全部楼层
Jones 发表于 2019-5-19 15:48
厉害了楼主!请问这个asr是不是相当于问若琪的话?然后调用以后若琪会回复? ...

是的,调用后若琪会回复你的询问内容,可以用在脚本里联动。

举个例子:比如早上开门的时候,主动播报天气。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2019-6-18 04:49 , Processed in 0.507575 second(s), 41 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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