Dreamray 发表于 2019-1-14 11:54:27

zigbee模块自制zigbee网关的问题


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



xieahui 发表于 2019-1-14 12:27:04

虚拟机网络直通了!他们是两个东西 两码事啊   zigbee应该走的无线接入吧?

Dreamray 发表于 2019-1-14 13:39:19

xieahui 发表于 2019-1-14 12:27
虚拟机网络直通了!他们是两个东西 两码事啊   zigbee应该走的无线接入吧? ...

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

xieahui 发表于 2019-1-14 14:07:40

Dreamray 发表于 2019-1-14 13:39
zigbee子设备和网关是走无线,但教程里说cc2531需要插到设备上。

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

Dreamray 发表于 2019-1-14 14:34:28

xieahui 发表于 2019-1-14 14:07
不会插着取电吧!这个没要求吧 除非走驱动连接? 应该不会啊 不可能搞这么麻烦的东西 ...

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

xieahui 发表于 2019-1-14 15:48:09

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

usb只是刷机用的 其他无关

xtjatypm 发表于 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上

Roger 发表于 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,有可能在启动时,顺序颠倒后,无法通讯的问题



Roger 发表于 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功能


Dreamray 发表于 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通过网络共享来读取吗
页: [1] 2
查看完整版本: zigbee模块自制zigbee网关的问题