带轮子的智能家居...爱丽丝。第2部分。

史诗般的语音控制


在上一部分中,通过Alice,声音由MiLight控制器控制。但是,并非每个家庭都有这样的控制器,这极大地限制了我们的能力。因此,我着手将语音控制扩展到普通灯,灯,枝形吊灯等,但对标准照明系统的改动很小。这种系统所需要做的就是用按照ZigBee协议运行的智能交换机替换传统交换机,并安装USB ZigBee协调器CC2531。自然,从上一篇文章开始,我们已经有了一个智能的Yandex列和一个自定义的混乱。

CC2531的成本为250卢布,CC-Debugger Texas Instruments的编程器为500卢布。 Livolo VL-C701Z-11触摸式智能开关是最昂贵的-大约每个2000卢布,不久之后,在2000年前后又添加了Aqara墙壁开关Zigbee按钮开关。

最初,我计划通过专有的ZigBee网关路由器Livolo C700ZW-12控制交换机,将其连接到开放式集线器,并通过yandex2mqtt使用Alice进行控制。我将腺体连接到电源,并在手机上通过Livolo设置了应用程序。我看到网关开关已连接,并且一切在手机上都能正常工作。但是由于缺少开放式集线器中的必要功能,因此无法将开放式集线器与路由器合并。

我不得不放弃网关,直接将交换机与CC2531加密狗合并。在这里,朋友Koenkk zigbee2mqtt项目帮助实现了这一目标。结果,我们设法将ZigBee协调器与智能交换机相连,首先通过mqtt主题中的查询检查其操作以进行分析,然后使用Alice配置控件。

因此,设置过程如何:

1. 协调器的固件刷新CC2531嗅探器然后将其插入USB端口。为了避免出现有关电源不足的消息,最好将至少2A的电流连接到5V电源。我们检查是否正确检测到系统中的摇杆:ls -l / dev / serial / by-id将显示类似usb-Texas_Instruments_TI_CC2531_USB_CDC ___ 0X00124B0458ED3DDF-if00-> ../../ttyACM0的内容。如果有的话,最后一条输出“-> ../../ttyACM0”的存在非常重要。如果没有这部分,木棍就可以做出决定,而没有任何效果。闪烁的棍子帮助我解决了这个问题。

2.安装Zigbee2mqtt,但不要启动。

3.正确配置/opt/zigbee2mqtt/data/configuration.yaml很重要。事实是Livolo智能交换机在通道26上运行,因此必须在文件中显式设置此通道。同样重要的是要注意文件各行开头的空格数。要检查配置文件的语法,可以使用YAML验证器

4.正确注册配置文件并且插入加密狗之后,运行zigbee2mqtt。然后我们踩到交换机,开始配对并查看控制台输出。将有设备,最后是这样的之间的数据交换,相互rassharkivaniya的一行:MQTT publish: topic 'zigbee2mqtt/0x001*********a8c9', payload '{"state_left":"OFF","state_right":"OFF","linkquality":60}'。这意味着交换机已连接并发送了其状态。如果您再运行几个控制台,则可以通过mqtt-topic控制灯光:关闭- mosquitto_pub -d -h localhost -t zigbee2mqtt/0x001*********a8c9/left/set -m OFF -u a**** -P *****然后转弯mosquitto_pub -d -h localhost -t zigbee2mqtt/0x001*********a8c9/left/set -m ON -u a**** -P *****,您还可以在Topeka检查球队mosquitto_sub -d -h localhost -t zigbee2mqtt/0x001*********a8c9/left/set -u a**** -P *****。顺便说一下,对于Livolo和Aqara,主题不仅在标识符0x0 ...上有所不同,而且在结构上也有所不同。可以在此处找到受支持设备的主题结构

5.确认可以通过mqtt管理设备后,将所有内容与Yandex配对。这里有些细微差别。用于通过主题中的zigbee2mqtt控制设备的命令以ON / OFF的形式出现,而yandex2mqtt结果为1/0。解决此问题的方法是在yandex2mqtt中编辑文件/mnt/data/root/yandex2mqtt/device.js。在“开”情况下,是否需要在开关中替换int = val?改为“ on”:“ off”,而不是“ 1”:“ 0”。自然,必须在开放式集线器中相应主题中更正切换命令。没有这个,Milight的灯将停止工作。最有趣的事情就在那里曝光-由于yandex2mqtt和zigbee2mqtt在本地mqtt服务器上发布了所有内容,因此zenbee设备似乎不需要开放的集线器来管理设备。该捆绑包可直接使用-yandex(Alice)-yandex2mqtt-mqtt-zigbee2mqtt-device zigbee。甚至意外地以某种方式。但是,让我们继续。我们将配置文件/mnt/data/root/yandex2mqtt/config.js中的设备控制主题归档到新的虚拟设备中,更新Yandex对话框系统中的设备列表,然后您可以踢Alice打开灯。

6.还可以将一对小米传感器,一个泄漏传感器和一个温度/湿度/压力传感器连接到系统。它们使用2032电池供电,自然地,它们不受控制,但是它们只是定期将诸如#033[32mzigbee2mqtt:info #033[39m 2020-05-04 21:12:21: MQTT publish: topic 'zigbee2mqtt/0x0015************', payload '{"battery":91,"voltage":2985,"temperature":26.2,"humidity":28.65,"pressure":1006.9,"linkquality":52}' - # #033[32mzigbee2mqtt:info #033[39m 2020-05-04 21:21:07: MQTT publish: topic 'zigbee2mqtt/0x001************7', payload '{"battery":100,"voltage":3025,"linkquality":0,"water_leak":true}' 漏水传感器之类的信息滴入一杯水中而成为主题到目前为止,还没有什么特别的好处,但是如果这一切都是合理的,并且做一些诸如将SMS或数字发送到网络枪口的反应性的话,那将是非常好的。

和一些视频:



All Articles