官方微信

TOP

Matter智能家居协议的美好愿景,要毁在Thread上了?

2023-08-11 14:23   来源:澎湃新闻·澎湃号·湃客   

  智能家居离不开Matter——这是一种联网设备的通用语言,可使各设备间相互对话且不受具体厂商的影响。但Matter语言需不需要Thread协议?毕竟我们已经拥有那么多无线传输协议——用于照明的Zigbee,用于安保系统的Z-Wave,还有用于控制锁具的近距离蓝牙协议,以及可满足相机图像传输等高带宽需求的Wi-Fi等。如果Matter能提供一种更安全、更简单且本地化的协议统筹方式,那智能家居无疑将步入新的发展阶段。

  但恰恰相反,Matter最终选择使用Wi-Fi和Thread进行无线通信,其他协议只能“桥接”至Matter当中。也就是说,制造商需要提供额外支持,但其实很少有人愿意费这个劲。那么,Matter为什么一定要选择相对较新的Thread,而不直接支持现有选项?

  这背后当然是利益的考量。Matter背后的连接标准联盟(CSA)成立时,该语言的两位最大参与者苹果和谷歌,已经全面加入了Thread智能家居的阵营。(Thread最初由Nest在2010年代初开发而成。)此外,Thread以Zigbee为基础,而CSA的前身正是Zigbee联盟——所以这样的历史传承也算有理有据。

  开源Thread协议确实有着引人注目的功能,Matter对它的肯定也代表着希望让智能家居迈上新的台阶。

  但问题在于,Thread基础设施的当前状态:特别是Thread边界路由器,需要接入互联网和其他基于IP的网络。目前市面上可供选择的Thread设备仍然相对较少,而且不少平台对该协议的态度只能说是“阳奉阴违”(亚马逊就是其中的典型)。于是乎,由Thread驱动的各类小工具在购买和设置方面也显得格外混乱和复杂。

  更重要的问题是,各主要平台在如何实现Thread的核心优势方面也无法达成一致。这个核心优势就是共享网状网络,允许任何制造商的任何边界路由器都能加入该网络,从而带来强大且不受故障影响的本地智能家居网络。

  混乱的根源不仅仅在于技术,更在于利益博弈。CSA和协议管理机构Thread Group故意留下一块空白,把在家居环境下共享强大新网络的方案开发责任留给了平台和设备制造商去解决。

  Thread规范提供将任意制造商的边界路由器添加至Thread网络内的基础技术,但Thread Group技术副总裁Jonathan Hui坦言:“Thread目前并没有为在不同Thread边界间安全共享Thread凭证的路由器指定协议。”也就是说,各边界路由器在同一网络内未必相互连通。智能家居设备制造商Eve Systems的Stefan Bauer-Schwan解释道:“各平台还没有就相互共享Thread凭证的标准化方式达成一致。”

  也就是说,物联网强调的开放网络原则正在沦为新的围墙花园和各合作伙伴间拉帮结派的新战场,而Matter在宣传中强调要解决的正是这种情况。

  使用Discovery应用,我们可以看到网络上存在的所有Thread边界路由器,包括Nanoleaf、谷歌、三星、苹果和亚马逊的设备。

  Nanoleaf应用则显示我有五个单独的Thread网络。Nanoleaf的边界路由器已经加入苹果网络,但其他路由器仍然各自“占山为王”。

  Thread边界路由器是干嘛用的?

  边界路由器是Thread协议中的关键部分。我们需要边界路由器配合Matter控制器,才能在家中设置Matter-over-Thread设备。与常见的智能音箱或智能家居集线器等Matter控制器不同,边界路由器并非专有或特定平台;而且跟传统的网桥和集线器装置不同,它也不一定要直接接入家中的网络路由器。

  边界路由器的核心卖点,在于它可以内置在任意始终通电的Wi-Fi设备上(例如路由器、智能音箱,甚至是电视冰箱),并与任何制造商出品的Thread设备配合使用。某些Matter控制器也可以充当Thread边界路由器,而这也让情况变得更加混乱。

  我家里装了好几台边界路由器,包括Eero Wi-Fi路由器、Echo第四代智能音箱、SmartThings集线器、Apple TV、HomePod Mini、两个Nest Hub还有几个Nanoleaf照明面板。但是,这样一套环境所对应的不是单一具备故障保护功能的强大Thread网络,而是共有五个……没错,一共五个独立的Thread网络,而且所有网络都在相互竞争,抢着连接我打算加进网络的任何Thread设备。在成功接入其中一个网络后,其他网络将永远查看不到对应的Thread设备、更遑论与之通信了,这就让智能家居完全成了空话。

  我家之所以有这么多Thread网络,是因为苹果、谷歌、亚马逊和三星互不相让,都想在智能家居环境下占据主导地位。更要命的是,每当新增一台具备Thread边界路由器的新设备时,它都有同样的可能再额外一个新Thread网络。

  于是除非我们刻意只使用一到两家制造商的边界路由器,否则Thread协议提出的建立能够自我修复的强大共享网状网络的目标根本就无法实现。随着我们在家居环境下引入更多设备,其中的边界路由器也越来越多。至于从同一家公司购买智能音箱、路由器、电视和冰箱?拜托,还没有哪个品牌能提供这么完整的产品阵容。

  共享网格,为什么就这么难?

  共享网格是Thread协议的基础。它有不少出色的特性,而其中的核心就是将多个Thread边界路由器连接起来以构建单一网络。也就是说,所有的锁具、灯具、传感器和恒温器都将被汇聚起来,构建起一个能够自我修复和故障保护机制的稳定网状网络。

  这种“共享”性质能够实现冗余、提高可靠性——如果某一边界路由器发生故障,另一边界路由器可以及时顶上,这样网络可以继续正常运作。此外,更多的边界路由器也有助于扩大网络范围、降低延迟。因为根据来自Thread Group的Hui的介绍,这样各设备间的通信路径更短。

  要构建这样的共享网格,边界路由器必须使用Thread 1.3.0规范。截至目前,大多数设备已经满足了这项要求。苹果在iOS 16.5版本中添加支持,让HomePods和支持Thread的Apple TV都能兼容1.3.0。谷歌的所有边界路由器均兼容1.3.0,三星的产品也是如此。Nanoleaf则更新了其拥有边界功能的照明面板,可支持接入现有Thread网络。至于亚马逊,其功能强大的Eero Wi-Fi路由器同样支持1.3.0。

  接下来,各边界路由器间需要共享凭证——类似于使用密码来加入Wi-Fi网络。为了让这个凌乱且风险极高的密码共享过程远离用户,Thread Group决定让Thread网络进行自我配置——也就是不经过手动操作。

  现在,当有新的Thread设备或边界路由器出现在家居环境中时,则必须为其赋予网络凭证(除非大家愿意手动输入一条32位长度的数字加字母的密码)。对于诸如插头、灯泡之类的Thread小工具,通过手机端者设置即可。为此,苹果和谷歌专门在iOS和Android的Google Play服务中创建了相应的KeyChain API。

  但当Thread边界路由器想要加入网络时,往往无法访问这些凭证,或者可能故意不想访问。由于将边界路由器视为无关紧要的设备,所以Matter并没有专门为其指定加入网络的方式。而且,由于Thread Group没有告知制造商和平台要如何处理这种握手,所以解决方案就只能由他们自己探索了。

  也就是说,苹果必须跟三星合作;而亚马逊必须与谷歌合作;至于谷歌则跟三星合作,诸如此类。一旦发生这种情况,工作自然很难继续推进了。目前的情况是,制造商可以决定其边界路由器是加入竞争对手创建的Thread网络,还是在家居环境中创建自己的新网络。

  目前,亚马逊的边界路由器只能在其自家设备创建的网络上工作(即部分Eero Wi-Fi路由器和Echo第四代智能音箱),无法加入原有Thread网络,亦不接受其他制造商的设备加入网络。

  根据亚马逊方面Rice的介绍,该公司正计划尽快解决此问题:“我们目前正向开发人员开放Thread凭证共享API的预览版本,这样在获得客户许可之后,设备制造商就可以通过Alexa Skill读取Thread凭证。”在正式版本发布之后,该Skill将允许亚马逊的Echo智能音箱接入现有Thread网络,同时允许其他制造商的边界路由器接入亚马逊设备创建的Thread网络。

  三星SmartThings也采取了类似的方案。SmartThings美国负责人Mark Benson表示,SmartThings应用将把智能网络路由器的Thread网络凭证保存在iOS或Android的Thread凭证存储当中,之后其他边界路由器应用就可在设置过程中读取这些凭证并加入相应的Thread网络。他解释称:“当然,是否要这么做还是取决于各边界路由器制造商。”

  如果各位用户已经设置了Thread网络并添加了作为Thread边界路由器的SmartThings设备,它会创建自己的网络。Benson指出:“我们正继续测试不同网络配置和边界路由器之间的互操作性,希望未来能与其他业内企业合作推动这个目标。目前,为了保证为用户提供最佳体验,我们又创建了新的SmartThings Thread网络。”

  故事的核心,仍是Android与iPhone之争

  Thread Group的Jonathan Hui表示,更复杂的问题在于,那些用于管理Thread凭证的Android和iOS API之间“暂时互不同步”。因此,用户的Thread网络配置方式以及支持边界路由器加入网络的具体能力,还是由执行设置时使用的手机而定。

  使用iOS设置的边界路由器无法识别用Android系统设置的边界路由器,也无法与Android设置的边界路由器通信。仅当各平台或设备同时安装了Android和iOS应用时,跨平台识别和通信方可实现。

  如果(更确切地说,是多数情况下)用户拥有多个Thread网络,目前并没有简单的网络合并方法,Thread规范也不提供其他可行路径。

  谷歌集团产品经理Kevin Po解释称,虽然提供“无线”更改网络配置的能力,但实现起来也并不简单。“Thread Group正与业界合作研究最佳实践,以确定何时应变更给定网络的配置,以及如何让用户在不破坏现有设置的情况下轻松完成这项操作。”

  目前设置功能最完备的两大平台就是谷歌和苹果。他们可以借此控制操作系统上的共享凭证,而且在各自的产品中也都有多年Thread使用经验。

  Po还强调:“苹果和谷歌的Thread边界路由器可以通过iOS Thread网络API共享同一个Thread网络。”因此,如果用户使用iOS设备对谷歌Nest Hub Max和Apple TV进行设置,即可将它们添加至同一Thread网络。

  但反过来却不行,因为Android手机无法访问iOS钥匙串,而且HomePod或Apple TV上也没有能够执行这类设置的应用(可能永远也不会有)。

  Hui表示,如果大家同时使用iOS和Android设备,则Google Home可以在各设备之间同步Thread凭证,并将其填充至两种平台上、进而让新的Thread设备(无论在哪种操作系统上设置)加入同一网络。

  所以,只要在iOS上设置所有的HomePod、Apple TV和Google Nest设备,再加上所有SmartThings集线器和亚马逊边界路由器,那我们就能建立起强大的Thread网络——但在除此之外的其他情形下,设备间的混合和匹配将仍然极为复杂。

  值得注意的是,同时存在多个Thread网络不一定是问题。毕竟理论上,独立的Thread网络也可以与另一基于IP的网络相互通信。但是,如果没能为所有边界路由器都提供一个共享网格,那么Thread的这一最大优势也将不复存在。Hui解释道,“不同Thread网络中的设备无法被纳入同一网格,所以无法相互建立连接。也就是说,它们无法共同建立起更大的整体网状网络。”

  他同时强调:“对于大多数用户来说,考虑到Thread的固有范围和响应能力,这可能并不影响实际使用。”但理想状态确实是建立起更大的整体网状网络,让所有边界路由器都能相互支持。而且规范本身也不建议仅运行单一边界路由器,因为一旦它意外断电,网络就会像Zigbee或Z-Wave网格那样出现故障。

  至于解决方案,需要各平台和设备制造商找到一种在各平台和设备间共享Thread网络凭证的方法,并将其推广为家居环境内安全创建单一Thread网络的行业标准。

  从各方负责人的发言来看,大家似乎都在为此付出努力。但多数消息其实来自2022年的Matter发布会,现在时间已经过去了九个月,而问题仍然没能得到解决。甚至随着更多Thread设备的推出以及越来越多边界路由器的发布,设置冲突的情况反而有持续恶化的倾向。

  为此,连接标准联盟必须跟Thread Group共同努力,要么通知“行业”必须在这个问题上团结起来、要么给出明确的解决路径。毕竟谷歌和苹果闹的“蓝/绿聊天气泡”之争在手机上已经够让人心烦的了,我们实在不想在家居环境下再看到这样的矛盾。