Alexie 发表于 2019-12-30 00:32:10

无需刷机 可在局域网发现SONOFF设备并进行操作的插件

本帖最后由 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//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文件
~
tar xvf ewelink.tar.bz2
mv ewelink homeassistant/components/
python -m script.hassfest

2.5 启用 ewelink Integration
编辑 ~/.homeassistant/configuration.yaml,并添加以下内容:
ewelink:

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
:8123

3.4 Home Assistant中Notifications(通知)中发现eWeLink服务,点Configure完成配置

[*]DIY Mode设备将出现在eWeLink服务的设备列表中
[*]名称为:ewelink_deviceID






3.5 现在就可以实现通过Home Assistant本地局域网控制具有DIY Mode的设备了

Alexie 发表于 2019-12-30 00:43:19

目前支持DIY模式的设备,只有两款 SONOFF BASIC R3 和 SONOFF MINI
现在让设备进入DIY模式,需要拆开外壳,板子上有个跳线。然后用配的跳线帽,插上去。重新上电,设备会进入DIY模式。
设备进入DIY模式后,如果之前没连接过路由器,就会自动过去搜一个固定的SSID和密码,并连接上去。如果你的H.A系统也处于这个局域网,就可以自动发现跟操作这个设备了。
SSID:sonoffDiy
Password: 20170618sn
当然,很多人的SSID和密码不会是这个,所以我们现在是建议找个手机当热点,设置为这个SSID和密码,设备会连接上去~ 然后你把电脑连接上去,通过DIYTool工具,可以发现这个设备,并把它切换到另一个WiFi上(切换到你的HA在的局域网)
* 若设备无法连接到默认的WiFi网络,请将设备切回eWeLink模式(断电拔掉跳线帽),重新安装好外壳上电,通过eWeLink软件进行配对并查看固件版本是否为3.3.0,若版本低于3.3.0,请更新至最新固件即可。
* 若想更改设备所连接的WiFi网络,需使用以下链接工具进行更改
参考资料:https://github.com/itead/Sonoff_Devices_DIY_Tools

------
这个方式现在感觉确实不方便,所以下来的一个版本固件,会进行更改:
设备进入DIY模式后,是处于AP状态,电脑可以搜素到这个设备的SSID,连接上去,然后用浏览器打开一个特定的域名,就弹出让你切换SSID和密码的窗口,输入完毕并切换后,设备就会自己连接过去了。

Aiden1 发表于 2019-12-30 01:10:24

这个可以有,话说zigbee版R3啥时候能买到呀:lol

xyz1943 发表于 2019-12-30 08:40:33

謝謝大大的分享,GOOD

dukejunior 发表于 2019-12-31 08:38:41

大神 威武。。。。。。。

ynzsl 发表于 2019-12-31 10:21:13

这个必须要顶的要狠,要狠狠的戳你,期待更多的设备支持,期待新固件。

newspaper 发表于 2020-1-10 17:35:34

本帖最后由 newspaper 于 2020-1-10 17:39 编辑

Alexie 发表于 2019-12-30 00:43
目前支持DIY模式的设备,只有两款 SONOFF BASIC R3 和 SONOFF MINI
现在让设备进入DIY模式,需要拆开外壳, ...
你好,手机热点显示sonoff basic r3 和运行DIY MODE tool 电脑都连上手机热点了,但是电脑端的DIY mode tool 发现不到连上手机sonoffDiy 的basic r3 是什么原因呀?basic r3己经升级成3.3了。

dtww1215 发表于 2020-1-11 23:38:40

newspaper 发表于 2020-1-10 17:35
你好,手机热点显示sonoff basic r3 和运行DIY MODE tool 电脑都连上手机热点了,但是电脑端的DIY mode to ...

我猜是sonoffDiy   这个D需要大写

newspaper 发表于 2020-1-13 16:36:55

本帖最后由 newspaper 于 2020-1-13 16:53 编辑

dtww1215 发表于 2020-1-11 23:38
我猜是sonoffDiy   这个D需要大写
是防火墙的原因,可是在用DIY mode tool 工具在刷机时选tasmota-knx.bin时,报下图错误如何解决呀?

newspaper 发表于 2020-1-13 17:22:02

Alexie 发表于 2019-12-30 00:43
目前支持DIY模式的设备,只有两款 SONOFF BASIC R3 和 SONOFF MINI
现在让设备进入DIY模式,需要拆开外壳, ...

请问 sonoff r3 我在diy模式下用diy tools 刷knx.bin文件提示超过大小,要是用esptool刷的话需要给sonoff r3插跳线进入DIY模式下吗?
页: [1] 2
查看完整版本: 无需刷机 可在局域网发现SONOFF设备并进行操作的插件