重新装入单个插件而不是重新启动整个家用桥
作者: justjam2013创建于 2025年7月16日更新于 2025年8月29日
标签enhancementvision
- 现状
当一个插件被更新或配置被更改时,整个家用桥会重新启动以重新装入插件. 在Homebridge倒下期间,由Homebridge所桥接的所有设备都无法使用,而不仅仅是被修改后插件所支持的设备. 这意味着任何涉及HB设备的自动化都会失败.
拟议变动
动态地重新装入单个插件,而无需完全重启Homebridge,以将Homebridge的不可用性降到最低.
++ 附加上下文
[Node.js:使用request.cache刷新一个模块] (https://gemmablack.dev/nodejs-rerefreeting-a-module-using-requerecache).
cont 主Path = path.join(此为.pluginPath,此为.main);
. . . . . . . .
const 插件Modules = this.isESM? 等 importDynamic(pathToFileURL (mainPath.href)):需要(mainPath);
因此,“mainPath”需要保存:
. 主Path号; . . . . . . . . 3⁄4 ̄ ̧漯B .
由于 " 插件摩多列斯 " 是按要求装入的,似乎可以这样做:
公开自动装入( ): 承诺 < void > {
删除request.cache[requere.resolve(此.mainPath)];
3⁄4 ̄ ̧漯B
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
这将从缓存中删除此插件, 然后调用加载( ) 将插件装入缓存
Homebridge API随后需要更新,这样HB UI就可以请求在更新后或改变其配置后重新加载一个插件.
内容来源: homebridge/homebridge