本帖最后由 Alexie 于 2019-12-30 00:54 编辑
最近研发小伙伴搞了一个小组件,测试通过,近期会提交同步到HA那边去,看哪个版本可以发布~
这个小组件的功能是,会通过mDNS去扫描是否在局域网内有SONOFF设备(设备必须处于DIY模式-这个最后补充说明下),如果发现,会弹出提示,确认后即可把发现的SONOFF设备添加到HA设备列表中去,然后就可以直接操作拉!整个发现和后续的操作,都走局域网~所以无需外网也可以正常使用。
在发布之前,可以通过下面方法大家玩一玩(前面一大堆,已经安装好了HA的大神可以直接无视跳过... ):
1. 运行 Linux(以树莓派为例):下载并安装 Raspbian Buster Lite镜像:https://www.raspberrypi.org/downloads/raspbian/
2. 运行 Home Assistant 开发环境
2.1 配置 Linux 开发环境
sudo apt-get install python3-pip python3-dev python3-venv
sudo apt-get install autoconf libssl-dev libxml2-dev libxslt1-dev libjpeg-dev libffi-dev libudev-dev zlib1g-dev pkg-config
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev
sudo apt-get install git
2.2 Fork Home Assistant 官方仓库
git clone https://github.com/[YOUR_GIT_USERNAME]/home-assistant.git
cd home-assistant
git remote add upstream https://github.com/home-assistant/home-assistant.git
python3 -m venv venv
source venv/bin/activate
script/setup
hass
参考资料:https://developers.home-assistant.io/docs/en/development_environment.html
2.3 升级 Zeroconf 库到最新版本
!!!Zeroconf 0.24.0以前的版本有问题,需更新至0.24.1以上!!!之前版本有2个Bug导致无法在局域网操作SONOFF设备,我们自己fix完并提交给作者,修复bug合并在0.24.1版本。
参考资料:https://github.com/jstasiak/python-zeroconf
git clone https://github.com/jstasiak/python-zeroconf.git
mv venv/lib/python3.7/site-packages/zeroconf venv/lib/python3.7/site-packages/zeroconf.bak
mv python-zeroconf/zeroconf venv/lib/python3.7/site-packages/
2.4 部署 eWeLink Integration
在这里下载ewelink.tar.bz2文件
ewelink.tar.bz2
(13.35 KB, 下载次数: 28)
~
tar xvf ewelink.tar.bz2
mv ewelink homeassistant/components/
python -m script.hassfest
2.5 启用 ewelink Integration
编辑 ~/.homeassistant/configuration.yaml,并添加以下内容:
3. 通过Home Assistant控制 SONOFF 设备 (具备DIY Mode功能)
3.1 - 让设备进入DIY模式,并切换进入跟HA同一个局域网。
目前仅有几款SONOFF设备支持DIY模式,而且现在的设备进入DIY模式并切换网络还有点复杂,我留到下面的回帖中介绍。
3.2 确认树莓派跟设备在同一个局域网(比如IP:192.168.43.238),并启动HA
ifconfig
cd home-assistant
source .venv/bin/activate
hass
3.3 在任意终端的浏览器中访问本地Home Assistant
如上述IP地址为例:192.168.43.238:8123
3.4 Home Assistant中Notifications(通知)中发现eWeLink服务,点Configure完成配置
- DIY Mode设备将出现在eWeLink服务的设备列表中
- 名称为:ewelink_deviceID
3.5 现在就可以实现通过Home Assistant本地局域网控制具有DIY Mode的设备了
|