在物联网技术的日益发展下,越来越多的家庭智能化设备被广泛应用于居家生活中,而这些设备通过接受外部信号的方式控制,也使得前端开发技术越来越得到应用。这里我们介绍一种利用 homebridge-mqtt-temperature-alexis NPM包来实现温度传感器数据接收的方式。
NPM包 homebridge-mqtt-temperature-alexis 简介
homebridge-mqtt-temperature-alexis 是 homebridge-mqtt 的一种扩展,实现了 MQTT(S) 温度传感器的接口,它可以接受物联网设备通过MQTT (或MQTT SSL) 协议发布的消息,将数据转换为 homebridge-mqtt 接口可接受的 JSON 格式,从而实现对设备的控制。
前置条件
使用 homebridge-mqtt-temperature-alexis,我们需要先安装以下组件:
- Node.js(版本需大于8.0);
- Homebridge;
- Homebridge-mqtt(也可通过 homebridge-config-ui-x 插件进行安装)
安装 homebridge-mqtt-temperature-alexis
在终端窗口运行以下命令进行安装:
--- ------- -- ----------------------------------
安装完成后,可以通过以下命令进行验证:
---------------------------------- --
如果能够输出帮助信息,则表示安装成功。
配置 homebridge-mqtt-temperature-alexis
在 homebridge 的配置文件中增加以下内容:
- ------------ -------------------------- ------- ------- ---- ------------- ------ ------------------------- ----------- ------------ ----------- ---------------- -------- ---------------------------------- ------- -------------- -------- ---------- ---------- ------ ---------- ----- ----------- ------ ---------- ---- -
配置项说明
- accessory:插件类型,固定为 mqtt-temperature-alexis;
- name:设备名称;
- url:MQTT 服务器地址;
- username:MQTT 服务器用户名;
- password:MQTT 服务器密码;
- topic:MQTT 主题;
- type:传感器类型,固定为 temperature;
- scale:温度单位,可选 "celsius" 或 "fahrenheit";
- minimum:传感器的最低温度值,输入浮点数;
- maximum:传感器的最高温度值,输入浮点数;
- accuracy:温度测量精度,输入浮点数;
- refresh:数据刷新时间,单位为秒。
使用 homebridge-mqtt-temperature-alexis
验证配置文件无误后,启动 Homebridge 服务,即可在 HomeKit 中看到已经添加的设备名称。不过此时设备状态是不可用的,需要发布 MQTT 消息来更新温度状态。
以下是 Node.js 的一个简单的 MQTT 客户端示例代码:
----- ---- - --------------- ----- ------ - -------------------------------------- - --------- ------------ --------- --------------- --- -------------------- -- -- - --------------------------------------------------- -- -------------------- ------- -------- -- - ------------------------------- ------------ --
当 MQTT 客户端连接服务器并成功订阅主题后,我们可以将数据以 JSON 格式发布到 "sensors/temperature/living_room" 主题中:
- -------------- ---- -
该数据将会自动更新到 HomeKit 中的 Living Room Temperature 设备中。
总结
通过使用 homebridge-mqtt-temperature-alexis NPM包,我们轻松地实现了 MQTT(S) 温度传感器的接口,同时也为其它的 homebridge-mqtt 扩展提供了很好的借鉴价值。在实际开发中,我们可以通过更复杂的消息协议传输更多的设备状态属性,来实现更多自动化场景的控制。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005668481e8991b448e2b11