前言
Node-RED基于Node.js构建,是一款可视化的流程编程工具,适用于物联网、Web of Things以及工业自动化等领域。在Node-RED上,我们可以通过连接不同的节点,完成复杂的逻辑处理,并将其部署到云服务器、边缘计算设备等不同场景中。
在Node-RED中,npm包是日常使用的恒量,它们包含了各式各样的节点、任务流、调试工具等,能够极大地提高我们的编程效率。本文将介绍一款npm包node-red-contrib-c8y-events,该npm包主要用于连接Cumulocity IoT平台和Node-RED,方便用户在Node-RED中实现物联网应用。
安装和配置
1. 安装
在Node-RED中,安装npm包非常简单,只需要在工作目录下运行以下命令即可:
npm install node-red-contrib-c8y-events
2. 配置
配置该npm包需要三步:创建应用、添加设备、生成API key。
- 创建应用
前往Cumulocity IoT平台,注册账号并创建应用。在创建应用时,需要选择Web application,并在应用创建后记下Tenant、Username和Password三个字段。
- 添加设备
进入应用管理后台,添加一个设备实例。记下设备名称以及设备Helper中的属性Type和ID。
- 生成API Key
在应用管理后台的API Credential中生成一个API Key,并将其记下。
完成上述准备工作后,我们就可以开始在Node-RED中使用node-red-contrib-c8y-events这个包了。
使用教程
下面我们将通过一个简单的示例来介绍node-red-contrib-c8y-events的使用方法,本示例用于监听设备状态改变事件,当设备状态变为“呼吸灯开启”时,将在Node-RED控制台中输出一段日志。
1. 连接节点
在Node-RED工具栏左侧的“Input”选项中,找到“c8y events”节点,拖动该节点到工作区。在设置该节点时,需要填入Cumulocity IoT平台的访问信息、监听的设备以及监听的事件类型。
设备和事件类型的ID可以在Cumulocity IoT平台的设备Helper中找到。
2. 输出节点
在Node-RED工具栏左侧的“Output”选项中,找到“debug”节点,拖动该节点到工作区。该节点用于输出监听到的事件信息,在调试过程中非常有用。
3. 连接节点
将“c8y events”节点和“debug”节点分别拖动到工作区中,然后将它们连接起来。完成连接后,按下“Deploy”按钮保存配置。
4. 后台运行
现在我们已经完成了配置和节点连接,可以按下左上角的“Trigger”按钮,手动触发一次事件监听。每当有设备状态发生改变时,我们都可以在控制台中看到相应的事件信息。
但在实际生产环境中,我们需要将Node-RED程序部署至云服务器或边缘计算设备中,让它在后台默默运行。在部署前,需要注意修改和配置好Cumulocity IoT平台的访问信息,确保程序可以稳定运行。
总结
在本文中,我们介绍了npm包node-red-contrib-c8y-events的使用方法,并通过一个简单的示例演示了如何连接Cumulocity IoT平台和Node-RED。希望该教程能对物联网开发者的工作有所帮助,并为更多的物联网应用开发提供参考。
示例代码
[{"id":"866b8dffb450120a","type":"debug","z":"3b23de260a113779","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":890,"y":260,"wires":[]},{"id":"53cf87fdfd871f7f","type":"c8y events","z":"3b23de260a113779","name":"","service":"events","filterQuery":"has(c8y_Device.id)","filterType":"c8y_Device.id","filterProperties":[{"property":"type","type":"eq","value":"c8y_LightingDevice"}],"outputType":"list","outputProperties":[{"property":"type"},{"property":"text"},{"property":"id"},{"property":"creationTime"}],"x":680,"y":260,"wires":[["866b8dffb450120a"]]},{"id":"ab8e4521b1d9b344","type":"inject","z":"3b23de260a113779","name":"Trigger","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":530,"y":260,"wires":[["53cf87fdfd871f7f"]]}]
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f85238a385564ab6c7b