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

 找回密码
 立即注册
查看: 57688|回复: 63

[进阶教程] 桥接若琪rokid和homeassistant

  [复制链接]

9

主题

48

帖子

508

积分

超级版主

Rank: 8Rank: 8

积分
508
金钱
450
HASS币
0

教程狂人卓越贡献突出贡献

发表于 2017-7-6 15:19:56 | 显示全部楼层 |阅读模式
问题更新:
1. 有很多玩家发现控制完设备之后, 若琪会报"一个自动发现设备控制出错"的问题, 我查验了一下可能是和若琪app的自动发现插件有关. 我已经联系若琪方核实这个问题了. 临时解决办法是使用远程调试驱动的方式

本帖目的:
将homeassistant中的设备加入到rokid的homebase平台中, 使用rokid控制homeassistant中的设备.
也欢迎大家访问我自己在git page上的博客Rokid_pebble联动homeassistant.

  • 目的
    rhass: 将homeassistant的设备加入到rokid pebble平台homebase上, 使用语音控制homeassistant平台上的设备.
    能做什么
    • 2017.07.06
      • 能够将homeassistant中switch, light, media_player, fan这四类设备自动的加入homebase上.
      • 加入homebase中的设备可以进行开关的操作.
      • 自动识别homeassistant的friendly_name, 并设置为homebase中设备的tag.
      • 使用SSDP协议, rokid可以自动发现homeassistant.

    开始之前
    • 会使用docker, 或者在宿主机上安装nodejs7.9.x.
    • 学习使用rokid的app打开开发者模式.
    • 将rokid和运行rhass的设备连到同一个局域网内.
    宿主机安装Docker安装
    1.搜索并下载schumyhao/homebase-hass-bridge-dockerdocker image.
    docker pull schumyhao/homebase-hass-bridge-docker
    2.创建容器:
    • 设置网络, 由于rokid基于SSDP自动发现协议, 可以自动发现同一级局域网内的设备. 所以建议将container的网络设置为host模式, 这样container就与rokid处于同一级局域网, 就可以通过SSDP协议自动发现rhass.
    • 设置ENV值HASS_IP为局域网内homeassistant的IP地址.
    • 如果homeassistant的port不是默认的8123的话, 设置ENV值HASS_PORT为homeassistant的port.
    • 如果homeassistant有设置登录密码的话, 设置ENV值HASS_PASSWD为你的登录密码.

                                   
    登录/注册后可看大图

                                   
    登录/注册后可看大图
    nodejs安装
    1.确定自己的nodejs版本为7.9.x以上, 如果版本过低, 请升级nodejs版本
    # node --versionv8.1.3
    2.使用npm安装包homebase-hass-bridge.
    npm install -g homebase-hass-bridge
    3.设置环境变量, 设置homeassistant的IP地址, 登录密码, 如果homeassistant的port不是默认的8123的话, 同样要设置port
    export HASS_IP=YOUR_HASS_IPexport HASS_PORT=YOUR_HASS_PORTexport HASS_PASSWD=YOUR_PASSWD
    4.启动
    rhass &
    手机App配置
    打开app的开发者模式, 并添加自动发现.

                                   
    登录/注册后可看大图
    结束
    正常情况下, 上述操作完成后就可以在rokid的app中扫描到homeassistant中现在支持的设备了. 下一步可以自行对每个设备的tag进行定义.享受使用rokid控制家中设备的乐趣.
    已知问题
    • 如果使用docker方式运行rhass但是设置网络为bridge模式, 或者运行rhass的机器和rokid不在同一局域网内, SSDP会无法正常工作. 需要使用远程调试驱动来添加rhass.
      1.在配置项中URL输入上述运行rhass机器的URL.端口是9999. 例如http://192.168.1.1:9999. 注意http://不能少
      2.userId和userToken不需要填写.

                                     
      登录/注册后可看大图

                                     
      登录/注册后可看大图



回复

使用道具 举报

5

主题

98

帖子

555

积分

高级会员

Rank: 4

积分
555
金钱
457
HASS币
0
发表于 2017-7-6 15:34:01 | 显示全部楼层
...看来又要剁手了
回复

使用道具 举报

24

主题

608

帖子

3488

积分

元老级技术达人

积分
3488
金钱
2875
HASS币
0

卓越贡献

发表于 2017-7-6 15:34:02 | 显示全部楼层
牛B的妖神!!感谢分享!!
回复

使用道具 举报

13

主题

554

帖子

4310

积分

论坛元老

Jeff

Rank: 8Rank: 8

积分
4310
金钱
3756
HASS币
10

活跃会员

发表于 2017-7-6 15:35:00 | 显示全部楼层
前排支持,感谢妖神!!!
Jeff
回复

使用道具 举报

5

主题

197

帖子

1999

积分

金牌会员

Rank: 6Rank: 6

积分
1999
金钱
1802
HASS币
0
发表于 2017-7-6 15:40:11 | 显示全部楼层
爆炸式新闻,真是好消息~妖神威武~
回复

使用道具 举报

7

主题

57

帖子

536

积分

论坛技术达人

积分
536
金钱
479
HASS币
0
发表于 2017-7-6 15:50:26 | 显示全部楼层
会使用docker, 或者在宿主机上安装nodejs8.x.x. 我本地是在群晖上使用docker的方式运行的, 且没有验证过别的方式. 但是原则上能够运行nodejs8.x.x的设备, 都能够胜任此项任务.

这个代表  树莓,和虚拟机下的Ubuntu  都应该可以安装,前提是 可以运行 nodejs8.xx
回复

使用道具 举报

9

主题

48

帖子

508

积分

超级版主

Rank: 8Rank: 8

积分
508
金钱
450
HASS币
0

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-7-6 16:01:51 | 显示全部楼层
eddy 发表于 2017-7-6 15:50
会使用docker, 或者在宿主机上安装nodejs8.x.x. 我本地是在群晖上使用docker的方式运行的, 且没有验证过别 ...

是的. 而且ubuntu raspi应该都能运行8.x.x的版本. 方法在此
回复

使用道具 举报

16

主题

281

帖子

1515

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1515
金钱
1224
HASS币
0

教程狂人卓越贡献

发表于 2017-7-6 16:05:23 | 显示全部楼层
先顶再看~
回复

使用道具 举报

5

主题

295

帖子

2062

积分

金牌会员

Rank: 6Rank: 6

积分
2062
金钱
1766
HASS币
0
发表于 2017-7-6 16:08:38 | 显示全部楼层
支持支持,感谢妖神!!
回复

使用道具 举报

5

主题

65

帖子

421

积分

论坛技术达人

Miracle

积分
421
金钱
356
HASS币
0
发表于 2017-7-6 16:26:13 | 显示全部楼层
必须赞一个。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 06:49 , Processed in 0.168174 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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