物联网分解第二部分:IP地址,网络,Zigbee,自定义固件,焊接

2020-11-24 16:46:40

在第1部分中,我故意将所有内容都保持在较高水平,因为坦率地说,我不想吓to人。我不感到羞耻地说,当我在不熟悉的技术,协议和首字母缩略词的海洋中苦苦挣扎时,甚至使基础知识完全正常工作的过程也引起了我的注意。我希望我在深入之前只是对基本面有所了解,这是我对本系列第一部分的初衷。

因此,剥离下一层,整个IoT空间不仅涉及在网络上拥有自己的IP地址并通过TCP(或UDP)进行通信的设备。他们中的许多人都做过(例如第1部分中的Shelly开关),但同时也有整个Zigbee空间。让我们深入研究所有内容,然后再深入研究自定义固件和焊接。

那么,当您开始用IoT物资填充房屋时会发生什么?您最终分配了很多IP地址;这是Ubiquiti的UniFi仪表板中的外观:

显然,在用尽此子网上的可用IPV4地址之前,我还有很长的路要走,所以现在这并不是让我担心的事情。另外,我所有的物联网设备都位于自己的Wi-Fi网络上,只是开始从不同的子网分配这些设备的IP非常简单(第3部分中有关安全性的更多信息)。 IPV6?在当今的物联网设备中很少见到,但是有很多令人信服的原因在将来获得更广泛的支持很有道理。

在大多数情况下,我家中的IoT设备仅从DHCP服务器获取其IP地址,而我再也没有考虑它。但是,在某些情况下,您最终会绑定到特定的IP地址。例如,以下是通过Wiz集成在HA中配置办公室的筒灯的方法:

然后,一天,灯光停止工作。为什么?他们在本地的Wiz应用程序中运行良好,为什么在HA中死了?回到UniFi仪表板,向下到Wiz灯,然后...啊:

因为它们是动态分配的IP地址,所以在某些时候,指示灯已重新启动,并重新安装了新的指示灯。但是,此修复很容易:

在必须完全重建我的IP地址后,我不得不更多地考虑IP地址保留(这是您在上面看到的,始终由DHCP服务器分配相同的IP)与静态IP地址(其中IP是在客户端本身中设置的)。网络。 (如果您对发生的事情感兴趣,我会在每周的更新视频216中对其进行详细介绍。)这里对这两种方法有一个很好的概述,但总的来说,中央管理始终是可取的。这意味着跳转到UniFi仪表板并获得网络中所有固定IP地址的快速列表非常容易(位于“ Insights”下):

孩子们的Nanoleaves也使用保留的IP,因为像Wiz灯一样,HA集成也需要设备的硬编码IP地址。在网络层上轻松访问诸如此类的可配置性确实至关重要,因此让我们深入研究该网络层并讨论良好的装备。

当您可能开始从本系列文章中收集信息时(随着它的进展,您会看到更多),您会发现自己花费大量时间来解决问题。为什么看不到设备?为什么只有某些客户端可以看到设备?为什么设备响应速度慢?自从开始物联网之旅以来,为什么为什么要喝这么多酒?拥有对我的网络配置的良好可见性对于帮助回答这些问题绝对至关重要。

多年来,我一直是Ubiquiti装备的声音拥护者,这是我的物联网世界中必不可少的一部分。 (披露:我在原始博客文章中购买了每台设备。从那以后,它们给了我很多装备。)例如,当我今天查看我的网络拓扑时,我可以轻松地看到连接到所有组件的所有组件其他:

我已经命名了我添加到网络中的每台设备,并给了它一个描述性的图标,以便一眼就能知道如何将所有东西捆绑在一起。我可以轻松地阻止设备与Internet通讯,限制其连接,查看正在与哪些在线服务进行通信以及访问有关该设备的大量其他信息。例如,就在今天,我试图识别一个我之前没有命名的讨厌的设备,现在却不知道它是什么:

试图弄清楚我以前连接到网络的客户端是什么。我将其放在IoT网络上,将其连接到Office AP,并且正在运行Linux,并从Amazon和Spotify下载数据,想法? pic.twitter.com/PE3eVLseFY

-特洛伊·亨特(@troyhunt)2020年11月24日

Wi-Fi网络是构建物联网网络的基础。在将所有内容加入到我的网络之前,投资该类内容是我本可以做的最好的事情。但是,并非所有的物联网都基于IP,距离它还很远。让我们跳入Zigbee。

好的,首先要考虑的是:Zigbee,而不是ZigBee。我是一个喜欢这样的细节的人,这让我发疯了,到处都看到两种风格,但是截至2017年,“ b”是小写字母(因为我是一个我一直在存档中浏览zigbee.com的贴纸, .org,直到我知道它何时更改为止)。 Zigbee标准由Zigbee联盟维护,Zigbee联盟是负责按正确方向进行推广的一组公司。 Zigbee使用IEEE 802.15.4标准,值得理解为什么,尤其是与仅通过Wi-Fi直接通信的设备相比:

IEEE标准802.15.4旨在提供一种无线个人局域网(WPAN)的基本底层网络层,该网络侧重于设备之间的低成本,低速普适通信。可以将它与其他方法(例如Wi-Fi)形成对比,后者可提供更多带宽并需要更多功率。重点在于几乎没有底层基础设施的附近设备的非常低成本的通信,旨在利用它来进一步降低功耗。IEEE 802.15。 4是低数据速率无线个人局域网,是许多物联网协议(例如ZigBee和WirelessHART)使用的PHY和MAC层。

换句话说,价值主张是低功耗和低成本,以带宽为代价。但这对于像这样的设备来说很好:

刚刚有Mi温度和湿度传感器到达了我正在做的物联网工作。尺寸确实很整齐,很容易在屋子里放上一堆,但是看它确实可以工作... pic.twitter.com/yjgtR87DUo

-特洛伊·亨特(@troyhunt)2020年6月7日

实际上,它非常适合此类设备,因为它们可以由电池供电(它们在标准CR2032上运行),使用寿命长达两年,并且仅需要以相对较低的频率发送一些简单值即可。

让我转瞬即逝:Zigbee不是那里唯一的低功耗,低带宽标准,而且在我旅行时,很多人还建议使用各种Z波长设备。我之所以全神贯注于Zigbee,主要是因为Aqara装置非常出色(即将推出更多功能),而且我已经拥有可以用作范围扩展器的Philips Hue装置(即将推出更多功能)。将来我可能还会使用Z-wave设备,我会在这里不提它们,我会很不高兴,但是目前我并不需要在Zigbee之外进行多元化发展。

但是Zigbee不是Wi-Fi,因此您不能只购买上述设备之类的小设备并将其连接到现有网络,它需要一个能够与802.15.4通讯的集线器,然后突然,我们回来了再次进入专有土地。例如,上面的小温度传感器和我在第1部分中讨论的运动传感器都是小米制造的,我总是可以购买Aqara Hub并将其连接起来:

但是,其他制造商的其他Zigbee设备又如何呢?例如,我屋子里有一堆飞利浦Hue灯,它们在Zigbee上方运行,我真的想最终得到一个飞利浦Hue集线器(我实际上已经拥有并集成了HA)和Aqara集线器(也具有HA集成)以及我最终使用的其他任何设备以及它们自己的集线器?不完全是,这使我想到了ConBee II Zigbee嗅探器。

仅HA不能从Zigbee设备读取,并且正如已经讨论的那样,它们也不能直接掉到Wi-Fi上,因此需要集线器。人们倾向于做的是“ CC2531棍子”,它可以“嗅” Zigbee流量。 CC2531是德州仪器(Texas Instruments)生产的芯片组(检查该资源的日期,可以追溯到十年前),出现在大量廉价单位中,称为“ Zigbee嗅探器”。但是,在我发布了有关温度传感器的较早的推文之后,有一次又一次出现一种特殊的模型。在没有提示的情况下,许多人将我引导到了ConBee II,这是一个带有CC2531芯片的小型USB记忆棒,可以与IEEE 802.15.4通讯并实现Zigbee协议。看看这些新事物如何联系在一起? 😊

ConBee II以Phoscon品牌生产,这是我在第1部分提到的与deCONZ集成相关的名称。我以78澳元的价格从亚马逊买了一个,将其插入运行HA的Raspberry Pi的USB端口,然后按照此出色的指南进行配置,以带您完成整个旅程。当我写完这篇文章后仅六个月就进行了该过程时,有很多地方已经过时(即,UI中的位置),但是仍然很容易理解。完成后,所有机制现在都可以连接到Zigbee网络的所有各个部分:

下一个问题是,以我为例,我最终将一个USB嗅探器插入了Raspberry Pi的服务器机架内的树莓派中,该服务器机架位于大型三层实心砖结构房屋底部车库中的大型步入式橱柜中。您可以猜测接下来会发生什么...

公平地说,在ConBee II中,它在这种情况下做得很好,其范围确实是一个很大的卖点:

得益于其功率放大器,ConBee II具有出色的范围。这使信号可以通过2-3个房间或楼层,具体取决于建筑类型。

但这还不够。我不断发现温度传感器(现在我在每个房间都有)无法使用,因此必须提供一些明确的信息。幸运的是,Zigbee的乐趣之一是-我在这里引用-“所有由市电供电的Zigbee设备,例如电灯和插座,都可以用作中继器并可以路由信号”。再次来自ConBee II的Phoscon页面,其说明如下:

这将创建一个网状网络,使您可以在添加更多(市电)设备时扩展Zigbee范围。从理论上讲,这一切都很好,但实际上,让我在我正在与我的好伴侣斯科特·赫尔姆(Scott Helme)进行他自己的HA构建时,进行一下讨论:

我想以原始的坦率状态进行讨论,因为它完美地说明了我在第1部分中提出的挫败感:这仍然是一个“制造者”世界,即使每天生活和呼吸技术的人们也继续遇到障碍。我在网上发现了许多关于IKEA中继器不能与小米设备配合使用的参考,但是当我查看自己的Zigbee网络时,却发现:

我可以在车库中看到很多连接到“ Range Extender 1”的设备!但没有设备连接到主卧室中的“ Range Extender 2”。太多的设备散布在太大的区域上,这仅仅是一个巧合,难道仅仅是一个范围扩展器不想连接而一个范围扩展器想要连接吗?我命令另一对夫妇只是为了看看会发生什么,但是我不断感觉到,这整个工作提出了更多的问题而不是答案。

在上面的Zigbee地图中,这些飞利浦Hue设备的简短说明:在与Scott进行的多次讨论中,我不得不将它们与Hue Bridge取消配对,然后像在所有其他Zigbee设备中一样,将它们与deCONZ配对。因此,我再也无法使用Philips Hue应用程序来管理我桌上的两个Hue Go设备。正如我在第1部分中所述,本机应用程序通常比HA提供的功能更丰富,这里也是如此。我的壁炉周围有几个顺化灯带,一个在电视后面,一个在娱乐室的大镜子后面。我希望家人能够通过一个易于使用的应用程序直接管理这些内容,因此我没有将它们移到deCONZ。这意味着它们不属于上图中的Zigbee网格网络的一部分,但是它们也位于已经有大量覆盖范围的位置。我的办公室确实需要更多的覆盖范围(位于ConBee II所在楼层的几层楼),只有我来管理它们,因此它们要出现在deCONZ网络中。

Zigbee整体上的最后一件事:我看到很多关于人们在使用deCONZ并转而使用ZHA上遇到问题的反馈:

嗨,特洛伊(Troy)刚读了您的帖子。真的很酷的东西。您应该知道,您可以从deCONZ切换到本机ZHA集成imo,它可以更好地工作并使集成更好。几个月前我进行了切换,这很棒,唯一的缺点是您需要再次配对。

— Dementor🇮🇱(@the_mentor)2020年11月23日

Zigbee家庭自动化(“ ZHA”)集成似乎受到了高度重视,老实说,我在deCONZ方面遇到了很多问题。当我现在在HA中查看它时,有很多设备丢失了最初配对它们时为它们提供的精心设计的名称:

这会一遍又一遍地发生,说实话,我只需要硬着头皮,杀死deCONZ,设置ZHA并手动重新配对房屋中的每个Zigbee设备😭要清楚,这并没有破坏HA参考以任何方式连接到设备,只需将它们在deCONZ中的表示以及随后的早期网络图中的表示搞乱即可。

但是在大多数情况下,Zigbee的东西很棒,尤其是那些小米Aqara设备。现在让我们深入研究它们。

我想专门针对小米Aqara撰写这篇文章的一部分,因为这些是我现在整个房子都拥有的很棒的小设备。在介绍设备本身之前,您会在此处使用的名称有一些歧义:

Mijia是小米拥有的品牌名称(您早先会在Aqara集线器图像上看到它)

底线:Aqara是您会在这里使用的名称,因为这就是我一直在购买的设备上的名称(此外,我可以比小米更可靠地拼写它!)它们便宜,可靠,并且在我看来,很漂亮看起来很小的单位。在本文的较早部分,我展示了一个温度传感器(提示:圆形传感器是较早的一代,方形传感器是较新的,并且还可以处理气压以及温度和湿度),在第1部分中,我展示了运动传感器天黑时会触发灯。除此之外,我还使用了许多接近传感器,所以我知道门何时打开或关闭:

在第1部分中,当我展示我的Apple Watch打开车库门时,这是通过在HA中定义一个盖来实现的。封面,“覆盖”东西,例如百叶窗,百叶窗和车库门。当您想到车库门之类的盖子时,实际上有两件事需要查看或控制:

接近传感器回答第一点,第一部分的雪莉回答第二点。结合起来,它们使我可以看一眼手表,查看车库门的状态,然后更改该状态。

这些是可以在自动化中使用的简单触发器。例如,我在楼梯的底部有一个,只需单击一下就可以关闭一堆灯。这些灯通常在日落之前点亮,但是如果我要手动将其打开,则只需双击同一按钮即可。整齐!

通过4个简单的步骤获取邮箱通知:1)获取@AQaraSmarthouse振动/运动传感器2)将其添加到本地#ZigBee网络3)将其附加到邮箱4)向@home_assistant添加一些自动化功能,以便每次收到通知有运动! #homeautomation pic.twitter.com/tP9pg7lzu1

— Pedro Lamas(@pedrolamas)2019年7月7日

那里有很多Zigbee设备,但是我想特别提及Aqara,因为它们真是太可靠了。我家里的几十个设备中的任何一个都只有一个问题,那就是带有近用完电池的信箱振动传感器。

我开始HA之旅时,便在每个房间里都安装了温度传感器。它简单,便宜,并且立即为我提供了有用的数据,我可以用以下方法开始做事:

提示:如果您想以有意义的方式进入HA和IoT,请从这里开始并进行工作。这些温度传感器既便宜又实用,可让您以一种低摩擦的方式将脚趾浸入IoT水中。插入一些运动和接近传感器,无需花费太多,您就可以立即完成很多工作。

现在,让我们进入与低摩擦完全相反的事物,让我们的双手更加肮脏。

我建议,我们所有人都需要找到自己的道路,即我们在玩物联网时想要得到多少脏手。对于许多人来说,使用您使用YAML配置的社区驱动软件来运行Raspberry Pi的整个想法实在是太过分了。对于其他人来说,这仅仅是开始,许多人按照上面的标题,将自定义固件刷新到设备和焊接线上。实际上,这是我最初通过跟踪此视频前往车库门的路径:

我购买了所有组件,下载了固件更新程序,并按照说明将其全部连接好,发现自己迷路了:

需要Sonoff SV和Tasmotizer的一些调试帮助:电路板似乎已正确连接,串行转换器LED亮起,Sonoff的电源打开并按住了刷新按钮,COM端口正确,但Tasmotizer看不到Sonoff。有什么明显的错误吗? pic.twitter.com/DByJqCEKDQ

-特洛伊·亨特(@troyhunt)2020年8月24日

然后,我发现与指令相反,RX不应转到TX,而应转到RX,然后就在那一刻,老实说:我丢了屎。为什么这么难?!为什么需要修改这种简单的小型设备的固件?为什么我然后发现自己拿着燃烧的烙铁只是为了打开我的车库门?

为了公平地对待生活在这个世界上的人们,我可以看到这个景点,并且我对那些有技巧和耐心走这条路的人表示敬意。 Tasmota是为ESP8266设备设计的非常流行的开源固件,它是许多IoT产品运行的芯片组(包括我家中的一堆灯)。但是对我来说,这是一个太过分而又不必要的步骤,因为使用不需要自定义固件,无需焊接且没有裸露电路的Shelly最终达到相同结果的难易程度是:

整个方法中最复杂的部分是阅读车库门开启器手册,并参考设备背面的接线盒:

O / S / C INPUT用于连接有线开关(瞬时触点)。然后可以使用此开关打开,停止或关闭门。

车库门自动化所需要做的就是通过Shelly闭合COM和OSC端子之间的电路,然后通过24V端子供电。我要说明的一点是,可以完成很多工作而无需使用自定义固件和焊接层,我希望在开始之前就知道这一点。在我看来,这就是我在第1部分中提到的“快乐之路”。

这个帖子主要是沸腾了

......