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

 找回密码
 立即注册
查看: 13762|回复: 21

[基础教程] 【挖掘空调伴侣】空调伴侣收音机控制

[复制链接]

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
发表于 2018-8-11 21:33:03 | 显示全部楼层 |阅读模式
本帖最后由 yunsean 于 2018-8-11 22:32 编辑

通过Home Assistant控制空调伴侣收音机功能(理论上网关的应该可以)
直接上链接:https://github.com/yunsean/xiaomi_miio_radio

看说明:
# xiaomi_miio_radio
小米空调伴侣广播控制 for home assistant

#部署
将下载得到的radio目录,放到python的python的home assitant组件目录下,比如windows下的目录可能在:
C:\Users\Dylan\AppData\Local\Programs\Python\Python36\Lib\site-packages\homeassistant\components
(注意你安装python版本可能与此不同,建议通过搜索site-packages并定位到homeassistant\components下)

#配置
在你的configuration.yaml文件中添加如下组件:
radio:
  - platform: xiaomi_miio
    host: YOUR_HOST
    token: YOUR_TOKEN
    name: "ChildrenRoom FM"  
token的获取方式与空调伴侣获取方式一致。

#服务
提供如下服务:
radio.turn_on
  打开广播
  指定entity_id为打开指定空调伴侣的广播,不指定则打开所配置的所有radio组件对应的设备广播
radio.turn_off
  关闭广播
  指定entity_id为关闭指定空调伴侣的广播,不指定则关闭所配置的所有radio组件对应的设备广播
radio.toggle
  切换打开关闭状态
  entity_id用途与上述两个方式一致
radio.set_volume
  设置音量
  entity_id用途与上述两个方式一致
  volume为音量值0-100
  {
    "entity_id": "radio.childrenroom_fm",
    "volume": 100
  }
radio.play_next
  播放下一个收藏频道【当前只能在频道编号最低的10个频道中循环】
  entity_id用途与上述两个方式一致
radio.play_prev
  播放上一个收藏频道【当前只能在频道编号最低的10个频道中循环】
  entity_id用途与上述两个方式一致   
radio.play_url
  播放指定频道
  entity_id用途与上述两个方式一致
  url为需要播放的频带ID(不是真正的网络地址哦)
  {
    "entity_id": "radio.childrenroom_fm",
    "url": 1739
  }
  目前没有找到如何直接播放一个网络地址的方法,通过add_channels添加进去的频道一直是空地址。。。
频道ID的获取方式:
  1、首先将你要播放的频道,通过米家APP加入到收藏里面,也就是通过空调伴侣的“网络收音机”进入后,在“我的收藏”中能够看到
  2、通过home assitant的states接口或者网站的states页面(左侧“开发者工具”下方有一对尖括号图标那个),找到你的设备,右侧中可以看到channels,后边有形如:
  "chs": [
    {
      "id": 751,
      "type": 0,
      "url": "http://live.xmcdn.com/live/751/64.m3u8"
    },
  其中id即为频道ID,可以通过属性查看到当前正在播放的频道ID【channel】。
  space_free: 11190211
  channel: 1065
  volume: 100

配置script:
  参考:
  children_fm_music:
    sequence:
      - service: radio.play_url
        data_template:
          entity_id: radio.childrenroom_fm
          url: 1739
      - service: radio.set_volume
        data_template:
          entity_id: radio.childrenroom_fm
          volume: 75
模拟开关:
  - platform: template
    switches:
      childrenroom_radio:
        value_template: "{{ is_state('radio.childrenroom_fm', 'on') }}"
        turn_on:
          - service: radio.turn_on
            data_template:
              entity_id: radio.childrenroom_fm
        turn_off:
          - service: radio.turn_off
            data_template:
              entity_id: radio.childrenroom_fm

音量调整界面:
input_number:
  children_fm_volume:
    name: children_fm_volume
    initial: 50
    min: 0
    max: 100
    step: 10   

automation:
  - id: '1529841469347'
    alias: children_fm_volume_auto
    initial_state: true
    trigger:
      - platform: state
        entity_id: input_number.children_fm_volume
    action:
      - service: radio.set_volume
        data_template:
          entity_id: radio.childrenroom_fm
          volume: "{{ states('input_number.children_fm_volume') | int }}"           

理论上同时支持空调伴侣和小米网关(空调伴侣二代,圆坨坨那货,测试通过!)         
Enjoy it!         

结合APP展示效果:
https://bbs.hassbian.com/thread-4403-1-1.html
QQ20180811-213035.png

另外可以参考空调伴侣作为万能红外遥控器:
https://bbs.hassbian.com/thread-4483-1-1.html


最后,有人需要将网关或者空调伴侣作为TTS功能的吗?


评分

参与人数 5金钱 +42 收起 理由
arrive + 7 非常希望空调伴侣和网关可以TTS啊.
咸味土豆 + 10 TTS需要,膜拜大神。
neroxps + 10 谢谢分享!
hundajdx + 5 膜拜大神!非常需要网关tts
+ 10 谢谢分享!

查看全部评分

回复

使用道具 举报

123

主题

4628

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16057
金钱
11344
HASS币
45
发表于 2018-8-11 21:53:48 | 显示全部楼层
首先感谢分享!网关播放外部url地址音频的问题,早研究过了,使用dns劫持方式都不能播放。。另外收音机的,也有发贴过,用miio就可实现,不过这插件出来会更方便一些。
回复

使用道具 举报

5

主题

95

帖子

606

积分

高级会员

Rank: 4

积分
606
金钱
511
HASS币
0
发表于 2018-8-11 21:55:51 来自手机 | 显示全部楼层
板凳支持,来个 tts
回复

使用道具 举报

4

主题

531

帖子

3917

积分

论坛元老

Rank: 8Rank: 8

积分
3917
金钱
3376
HASS币
120
发表于 2018-8-11 22:00:20 | 显示全部楼层
网关没办法tts

我这有个jones的双网关fm修复版https://bbs.hassbian.com/forum.p ... 68&highlight=fm
里边有完整的播放列表

xiaomi_gateway_fm.rar (2.3 KB, 下载次数: 16)

回复

使用道具 举报

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
 楼主| 发表于 2018-8-11 22:10:10 | 显示全部楼层
killadm 发表于 2018-8-11 22:00
网关没办法tts

我这有个jones的双网关fm修复版https://bbs.hassbian.com/forum.php?mod=viewthread&tid=36 ...

思路可能不太一样,我没打算在界面点选,主要是为了配合APP做上下节目换台用,特别好听的台可以通过定制脚本做成按钮。
回复

使用道具 举报

30

主题

999

帖子

4119

积分

论坛元老

Rank: 8Rank: 8

积分
4119
金钱
3115
HASS币
0

活跃会员

发表于 2018-8-12 09:58:58 | 显示全部楼层
yunsean 发表于 2018-8-11 22:10
思路可能不太一样,我没打算在界面点选,主要是为了配合APP做上下节目换台用,特别好听的台可以通过定制 ...

感谢大神,非常需要网关tts!!
回复

使用道具 举报

30

主题

999

帖子

4119

积分

论坛元老

Rank: 8Rank: 8

积分
4119
金钱
3115
HASS币
0

活跃会员

发表于 2018-8-12 11:00:26 | 显示全部楼层
Jones 发表于 2018-8-11 21:53
首先感谢分享!网关播放外部url地址音频的问题,早研究过了,使用dns劫持方式都不能播放。。另外收音机的, ...

八哥的插件只能控制以下两种网关,不支持第二代空调伴侣,楼主的插件亲测能控制二代空调伴侣
Xiaomi Aqara Gateway (lumi.gateway.v2, lumi.gateway.v3)
Aqara Air Conditioning Companion (lumi.acpartner.v3)

回复

使用道具 举报

30

主题

999

帖子

4119

积分

论坛元老

Rank: 8Rank: 8

积分
4119
金钱
3115
HASS币
0

活跃会员

发表于 2018-8-12 11:05:05 | 显示全部楼层
感谢楼主分享,亲测二代空调伴侣(圆形)可用
1.插件下载目录可否改为custom_components,这样更方便些
2.能否增加播放指定铃声的功能,我试了好像只能播放FM
3.tts功能实在太需要了
回复

使用道具 举报

123

主题

4628

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16057
金钱
11344
HASS币
45
发表于 2018-8-12 11:26:20 | 显示全部楼层
wqqs 发表于 2018-8-12 11:00
八哥的插件只能控制以下两种网关,不支持第二代空调伴侣,楼主的插件亲测能控制二代空调伴侣
Xiaomi Aqar ...

厉害咯!
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2018-8-12 15:06:43 | 显示全部楼层
非常需要tts   这样就等于有了个 平时常通电 稳定的非蓝牙 非DLNA得播放器了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 21:20 , Processed in 0.260013 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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