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

 找回密码
 立即注册
查看: 42897|回复: 47

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

[复制链接]

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
发表于 2019-5-18 16:58:49 | 显示全部楼层 |阅读模式
本帖最后由 hassio-newbie 于 2019-7-14 20:37 编辑

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/
  • 支持HACS

  • 支持 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

~谢谢~






评分

参与人数 2金钱 +28 HASS币 +20 收起 理由
eric + 8 论坛有你更精彩!
+ 20 + 20 膜拜大神!

查看全部评分

回复

使用道具 举报

2

主题

712

帖子

4874

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

9

主题

787

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

30

主题

999

帖子

4117

积分

论坛元老

Rank: 8Rank: 8

积分
4117
金钱
3113
HASS币
0

活跃会员

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

使用道具 举报

30

主题

999

帖子

4117

积分

论坛元老

Rank: 8Rank: 8

积分
4117
金钱
3113
HASS币
0

活跃会员

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

使用道具 举报

40

主题

340

帖子

2238

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

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

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

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

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

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

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

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

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

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

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 14:40 , Processed in 0.061067 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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