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

 找回密码
 立即注册
查看: 11230|回复: 16

[技术探讨] zigbee模块自制zigbee网关的问题

[复制链接]

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
发表于 2019-1-14 11:54:27 | 显示全部楼层 |阅读模式

看到有大神用zigbee模块cc2531自制zigbee网关,想问一下,win10 系统hyper v虚拟debian中安装的ha,自制网关还能用吗,貌似需要ha访问网关,虚拟机中访问实体机usb设备是个问题。有这么做过的朋友吗。?



回复

使用道具 举报

8

主题

2073

帖子

6053

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6053
金钱
3980
HASS币
145

灌水之王

发表于 2019-1-14 12:27:04 | 显示全部楼层
虚拟机网络直通了!  他们是两个东西 两码事啊   zigbee应该走的无线接入吧?
回复

使用道具 举报

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
 楼主| 发表于 2019-1-14 13:39:19 | 显示全部楼层
xieahui 发表于 2019-1-14 12:27
虚拟机网络直通了!  他们是两个东西 两码事啊   zigbee应该走的无线接入吧? ...

zigbee子设备和网关是走无线,但教程里说cc2531需要插到设备上。
回复

使用道具 举报

8

主题

2073

帖子

6053

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6053
金钱
3980
HASS币
145

灌水之王

发表于 2019-1-14 14:07:40 | 显示全部楼层
Dreamray 发表于 2019-1-14 13:39
zigbee子设备和网关是走无线,但教程里说cc2531需要插到设备上。

不会插着取电吧!  这个没要求吧 除非走驱动连接? 应该不会啊 不可能搞这么麻烦的东西
回复

使用道具 举报

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
 楼主| 发表于 2019-1-14 14:34:28 | 显示全部楼层
xieahui 发表于 2019-1-14 14:07
不会插着取电吧!  这个没要求吧 除非走驱动连接? 应该不会啊 不可能搞这么麻烦的东西 ...

不是小米那种成品网关,是自制的网关,就是usb取电。按这个教程来的你看看:https://bbs.hassbian.com/thread-4448-1-1.html
回复

使用道具 举报

8

主题

2073

帖子

6053

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6053
金钱
3980
HASS币
145

灌水之王

发表于 2019-1-14 15:48:09 | 显示全部楼层
Dreamray 发表于 2019-1-14 14:34
不是小米那种成品网关,是自制的网关,就是usb取电。按这个教程来的你看看:https://bbs.hassbian.com/th ...

usb只是刷机用的 其他无关
回复

使用道具 举报

1

主题

61

帖子

323

积分

中级会员

Rank: 3Rank: 3

积分
323
金钱
262
HASS币
0
发表于 2019-1-14 16:38:27 | 显示全部楼层
本帖最后由 xtjatypm 于 2019-1-14 17:06 编辑

不懂的不要乱指导别人啊, 那个usb是用来通信的,usb转串口的, 运行在docker的程序从usb串口读取数据的    其它虚拟机可以usb直通的,hyper v 可以用usb over network 映射到虚拟机上usb 不行的话 ,虚拟机添加串口, 选择win下识别出来的串口就可以了, 再不行可以在win下串口转tcp, 在linux下tcp转虚拟串口
大致流程:
各个zigbee设备通过无线发送数据到zigbee网关,zigbee网关通过模块的usb把数据转发到电脑上,电脑上运行的zigbee2mqtt 从usb读取数据后通过mqtt转发到hass上

回复

使用道具 举报

6

主题

287

帖子

4149

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4149
金钱
3857
HASS币
0
发表于 2019-1-14 18:08:03 | 显示全部楼层
首先,要让用户名homeassitant取得串口通讯的权限
sudo usermod -G dialout -a homeassistant;

sudo apt-get install libudev-dev;


然后,编辑一个配置文档,让CC2531有一个指定的设备名字,方便未来的配置和热插拔

使用nano来写一个配置文件
sudo nano /etc/udev/rules.d/99-usb-serial.rules


把下面的内容,粘帖进去
SUBSYSTEM=="tty", ACTION=="add", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="zigbee"


重启UDEV服务
sudo systemctl restart udev.service


重新插拔一下CC2531

查看一下z开头的设备列表
ls -l /dev/z*


正确的话,将显示
/dev/zigbee -> ttyACM0
或者
/dev/zigbee -> ttyACM1
以上的设置,可以避免你未来有2个以上的usb串口设备时,ttyACM0和ttyACM1,有可能在启动时,顺序颠倒后,无法通讯的问题



回复

使用道具 举报

6

主题

287

帖子

4149

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4149
金钱
3857
HASS币
0
发表于 2019-1-14 18:11:48 | 显示全部楼层
如果你使想用docker版本的Zigbee2mqtt,进行完上面的设置后,使用以下命令

sudo docker run -d --restart=always --name=zigbee2mqtt -it -v /etc/localtime:/etc/localtime:ro -v /home/homeassistant/.homeassistant/zigbee2mqtt:/app/data --device=/dev/zigbee koenkk/zigbee2mqtt:arm64v8


我使用斐讯N1做主机,所以最后面版本是arm64v8,请按自己主机的架构类型修改
zigbee2mqtt的配置文件在/home/homeassistant/.homeassistant/zigbee2mqtt/configuration.yaml

按照下面的内容,稍微修改一下就可以,然后重启容器,应该就可以使用了

homeassistant: true
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://192.168.1.204:1883'
  user: pi
  password: raspberry
serial:
  port: /dev/zigbee

另外,提醒注意:使用hyper-v或者是esxi,使用宿主机的usb直通通讯功能,cpu必须支持VT-D功能


回复

使用道具 举报

31

主题

127

帖子

756

积分

论坛积极会员

积分
756
金钱
629
HASS币
0
 楼主| 发表于 2019-1-15 10:38:49 | 显示全部楼层
本帖最后由 Dreamray 于 2019-1-15 10:50 编辑
xtjatypm 发表于 2019-1-14 16:38
不懂的不要乱指导别人啊, 那个usb是用来通信的,usb转串口的, 运行在docker的程序从usb串口读取数据的    ...

感谢回复,提供了很多方法。还想问下,zigbee2mqtt 从usb读取数据只能通过串口吗,读取的是不是存储到cc2531模块里的数据,如果是的话能通过共享cc2531的存储空间,能让zigbee2mqtt通过网络共享来读取吗
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 13:27 , Processed in 0.238642 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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